mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
types: add ExcludeEnum utility for easier typings (#6746)
Co-authored-by: Jan <66554238+vaporox@users.noreply.github.com>
This commit is contained in:
26
typings/enums.d.ts
vendored
26
typings/enums.d.ts
vendored
@@ -49,6 +49,32 @@ export const enum ChannelTypes {
|
|||||||
GUILD_STAGE_VOICE = 13,
|
GUILD_STAGE_VOICE = 13,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const enum MessageTypes {
|
||||||
|
DEFAULT,
|
||||||
|
RECIPIENT_ADD,
|
||||||
|
RECIPIENT_REMOVE,
|
||||||
|
CALL,
|
||||||
|
CHANNEL_NAME_CHANGE,
|
||||||
|
CHANNEL_ICON_CHANGE,
|
||||||
|
CHANNEL_PINNED_MESSAGE,
|
||||||
|
GUILD_MEMBER_JOIN,
|
||||||
|
USER_PREMIUM_GUILD_SUBSCRIPTION,
|
||||||
|
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1,
|
||||||
|
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2,
|
||||||
|
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3,
|
||||||
|
CHANNEL_FOLLOW_ADD,
|
||||||
|
GUILD_DISCOVERY_DISQUALIFIED = 14,
|
||||||
|
GUILD_DISCOVERY_REQUALIFIED,
|
||||||
|
GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING,
|
||||||
|
GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING,
|
||||||
|
THREAD_CREATED,
|
||||||
|
REPLY,
|
||||||
|
APPLICATION_COMMAND,
|
||||||
|
THREAD_STARTER_MESSAGE,
|
||||||
|
GUILD_INVITE_REMINDER,
|
||||||
|
CONTEXT_MENU_COMMAND,
|
||||||
|
}
|
||||||
|
|
||||||
export const enum DefaultMessageNotificationLevels {
|
export const enum DefaultMessageNotificationLevels {
|
||||||
ALL_MESSAGES = 0,
|
ALL_MESSAGES = 0,
|
||||||
ONLY_MENTIONS = 1,
|
ONLY_MENTIONS = 1,
|
||||||
|
|||||||
75
typings/index.d.ts
vendored
75
typings/index.d.ts
vendored
@@ -66,6 +66,7 @@ import {
|
|||||||
MembershipStates,
|
MembershipStates,
|
||||||
MessageButtonStyles,
|
MessageButtonStyles,
|
||||||
MessageComponentTypes,
|
MessageComponentTypes,
|
||||||
|
MessageTypes,
|
||||||
MFALevels,
|
MFALevels,
|
||||||
NSFWLevels,
|
NSFWLevels,
|
||||||
OverwriteTypes,
|
OverwriteTypes,
|
||||||
@@ -2290,6 +2291,8 @@ export class WelcomeScreen extends Base {
|
|||||||
|
|
||||||
type EnumHolder<T> = { [P in keyof T]: T[P] };
|
type EnumHolder<T> = { [P in keyof T]: T[P] };
|
||||||
|
|
||||||
|
type ExcludeEnum<T, K extends keyof T> = Exclude<keyof T | T[keyof T], K | T[K]>;
|
||||||
|
|
||||||
export const Constants: {
|
export const Constants: {
|
||||||
Package: {
|
Package: {
|
||||||
name: string;
|
name: string;
|
||||||
@@ -2900,7 +2903,7 @@ export type ActivitiesOptions = Omit<ActivityOptions, 'shardId'>;
|
|||||||
export interface ActivityOptions {
|
export interface ActivityOptions {
|
||||||
name?: string;
|
name?: string;
|
||||||
url?: string;
|
url?: string;
|
||||||
type?: Exclude<ActivityType, 'CUSTOM'> | Exclude<ActivityTypes, ActivityTypes.CUSTOM>;
|
type?: ExcludeEnum<typeof ActivityTypes, 'CUSTOM'>;
|
||||||
shardId?: number | readonly number[];
|
shardId?: number | readonly number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3129,7 +3132,7 @@ export type ApplicationCommandData =
|
|||||||
|
|
||||||
export interface ApplicationCommandChannelOptionData extends BaseApplicationCommandOptionsData {
|
export interface ApplicationCommandChannelOptionData extends BaseApplicationCommandOptionsData {
|
||||||
type: CommandOptionChannelResolvableType;
|
type: CommandOptionChannelResolvableType;
|
||||||
channelTypes?: Exclude<keyof typeof ChannelTypes | ChannelTypes, 'UNKNOWN' | ChannelTypes.UNKNOWN>[];
|
channelTypes?: ExcludeEnum<typeof ChannelTypes, 'UNKNOWN'>[];
|
||||||
channel_types?: Exclude<ChannelTypes, ChannelTypes.UNKNOWN>[];
|
channel_types?: Exclude<ChannelTypes, ChannelTypes.UNKNOWN>[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3313,8 +3316,8 @@ export type CacheWithLimitsOptions = {
|
|||||||
export interface CategoryCreateChannelOptions {
|
export interface CategoryCreateChannelOptions {
|
||||||
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
|
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
|
||||||
topic?: string;
|
topic?: string;
|
||||||
type?: Exclude<
|
type?: ExcludeEnum<
|
||||||
keyof typeof ChannelTypes | ChannelTypes,
|
typeof ChannelTypes,
|
||||||
| 'DM'
|
| 'DM'
|
||||||
| 'GROUP_DM'
|
| 'GROUP_DM'
|
||||||
| 'UNKNOWN'
|
| 'UNKNOWN'
|
||||||
@@ -3322,13 +3325,6 @@ export interface CategoryCreateChannelOptions {
|
|||||||
| 'GUILD_NEWS_THREAD'
|
| 'GUILD_NEWS_THREAD'
|
||||||
| 'GUILD_PRIVATE_THREAD'
|
| 'GUILD_PRIVATE_THREAD'
|
||||||
| 'GUILD_CATEGORY'
|
| 'GUILD_CATEGORY'
|
||||||
| ChannelTypes.DM
|
|
||||||
| ChannelTypes.GROUP_DM
|
|
||||||
| ChannelTypes.UNKNOWN
|
|
||||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
|
||||||
| ChannelTypes.GUILD_NEWS_THREAD
|
|
||||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
|
||||||
| ChannelTypes.GUILD_CATEGORY
|
|
||||||
>;
|
>;
|
||||||
nsfw?: boolean;
|
nsfw?: boolean;
|
||||||
bitrate?: number;
|
bitrate?: number;
|
||||||
@@ -3968,20 +3964,9 @@ export type GuildChannelResolvable = Snowflake | GuildChannel | ThreadChannel;
|
|||||||
|
|
||||||
export interface GuildChannelCreateOptions extends Omit<CategoryCreateChannelOptions, 'type'> {
|
export interface GuildChannelCreateOptions extends Omit<CategoryCreateChannelOptions, 'type'> {
|
||||||
parent?: CategoryChannelResolvable;
|
parent?: CategoryChannelResolvable;
|
||||||
type?: Exclude<
|
type?: ExcludeEnum<
|
||||||
keyof typeof ChannelTypes | ChannelTypes,
|
typeof ChannelTypes,
|
||||||
| 'DM'
|
'DM' | 'GROUP_DM' | 'UNKNOWN' | 'GUILD_PUBLIC_THREAD' | 'GUILD_NEWS_THREAD' | 'GUILD_PRIVATE_THREAD'
|
||||||
| 'GROUP_DM'
|
|
||||||
| 'UNKNOWN'
|
|
||||||
| 'GUILD_PUBLIC_THREAD'
|
|
||||||
| 'GUILD_NEWS_THREAD'
|
|
||||||
| 'GUILD_PRIVATE_THREAD'
|
|
||||||
| ChannelTypes.DM
|
|
||||||
| ChannelTypes.GROUP_DM
|
|
||||||
| ChannelTypes.UNKNOWN
|
|
||||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
|
||||||
| ChannelTypes.GUILD_NEWS_THREAD
|
|
||||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
|
||||||
>;
|
>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4308,7 +4293,7 @@ export interface LinkButtonOptions extends BaseButtonOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface InteractionButtonOptions extends BaseButtonOptions {
|
export interface InteractionButtonOptions extends BaseButtonOptions {
|
||||||
style: Exclude<MessageButtonStyleResolvable, 'LINK' | MessageButtonStyles.LINK>;
|
style: ExcludeEnum<typeof MessageButtonStyles, 'LINK'>;
|
||||||
customId: string;
|
customId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4506,30 +4491,7 @@ export type MessageTarget =
|
|||||||
| Message
|
| Message
|
||||||
| MessageManager;
|
| MessageManager;
|
||||||
|
|
||||||
export type MessageType =
|
export type MessageType = keyof typeof MessageTypes;
|
||||||
| 'DEFAULT'
|
|
||||||
| 'RECIPIENT_ADD'
|
|
||||||
| 'RECIPIENT_REMOVE'
|
|
||||||
| 'CALL'
|
|
||||||
| 'CHANNEL_NAME_CHANGE'
|
|
||||||
| 'CHANNEL_ICON_CHANGE'
|
|
||||||
| 'CHANNEL_PINNED_MESSAGE'
|
|
||||||
| 'GUILD_MEMBER_JOIN'
|
|
||||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION'
|
|
||||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1'
|
|
||||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2'
|
|
||||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3'
|
|
||||||
| 'CHANNEL_FOLLOW_ADD'
|
|
||||||
| 'GUILD_DISCOVERY_DISQUALIFIED'
|
|
||||||
| 'GUILD_DISCOVERY_REQUALIFIED'
|
|
||||||
| 'GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING'
|
|
||||||
| 'GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING'
|
|
||||||
| 'THREAD_CREATED'
|
|
||||||
| 'REPLY'
|
|
||||||
| 'APPLICATION_COMMAND'
|
|
||||||
| 'THREAD_STARTER_MESSAGE'
|
|
||||||
| 'GUILD_INVITE_REMINDER'
|
|
||||||
| 'CONTEXT_MENU_COMMAND';
|
|
||||||
|
|
||||||
export type MFALevel = keyof typeof MFALevels;
|
export type MFALevel = keyof typeof MFALevels;
|
||||||
|
|
||||||
@@ -4631,8 +4593,8 @@ export type PresenceResolvable = Presence | UserResolvable | Snowflake;
|
|||||||
export interface PartialChannelData {
|
export interface PartialChannelData {
|
||||||
id?: Snowflake | number;
|
id?: Snowflake | number;
|
||||||
parentId?: Snowflake | number;
|
parentId?: Snowflake | number;
|
||||||
type?: Exclude<
|
type?: ExcludeEnum<
|
||||||
keyof typeof ChannelTypes | ChannelTypes,
|
typeof ChannelTypes,
|
||||||
| 'DM'
|
| 'DM'
|
||||||
| 'GROUP_DM'
|
| 'GROUP_DM'
|
||||||
| 'GUILD_NEWS'
|
| 'GUILD_NEWS'
|
||||||
@@ -4642,15 +4604,6 @@ export interface PartialChannelData {
|
|||||||
| 'GUILD_PUBLIC_THREAD'
|
| 'GUILD_PUBLIC_THREAD'
|
||||||
| 'GUILD_PRIVATE_THREAD'
|
| 'GUILD_PRIVATE_THREAD'
|
||||||
| 'GUILD_STAGE_VOICE'
|
| 'GUILD_STAGE_VOICE'
|
||||||
| ChannelTypes.DM
|
|
||||||
| ChannelTypes.GROUP_DM
|
|
||||||
| ChannelTypes.GUILD_NEWS
|
|
||||||
| ChannelTypes.GUILD_STORE
|
|
||||||
| ChannelTypes.UNKNOWN
|
|
||||||
| ChannelTypes.GUILD_NEWS_THREAD
|
|
||||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
|
||||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
|
||||||
| ChannelTypes.GUILD_STAGE_VOICE
|
|
||||||
>;
|
>;
|
||||||
name: string;
|
name: string;
|
||||||
topic?: string;
|
topic?: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user