From 76694c1497de1b083a792fd1fda20f0eace50c48 Mon Sep 17 00:00:00 2001 From: Khafra <42794878+KhafraDev@users.noreply.github.com> Date: Fri, 13 May 2022 05:35:08 -0400 Subject: [PATCH] feat(EnumResolvers): remove Enumresolvers (#7876) --- packages/discord.js/src/index.js | 1 - packages/discord.js/src/util/EnumResolvers.js | 843 ------------------ packages/discord.js/typings/index.d.ts | 176 ---- 3 files changed, 1020 deletions(-) delete mode 100644 packages/discord.js/src/util/EnumResolvers.js diff --git a/packages/discord.js/src/index.js b/packages/discord.js/src/index.js index 580030bd2..6e297ca2d 100644 --- a/packages/discord.js/src/index.js +++ b/packages/discord.js/src/index.js @@ -19,7 +19,6 @@ exports.Collection = require('@discordjs/collection').Collection; exports.Constants = require('./util/Constants'); exports.Colors = require('./util/Colors'); exports.DataResolver = require('./util/DataResolver'); -exports.EnumResolvers = require('./util/EnumResolvers'); exports.Events = require('./util/Events'); exports.Formatters = require('./util/Formatters'); exports.IntentsBitField = require('./util/IntentsBitField'); diff --git a/packages/discord.js/src/util/EnumResolvers.js b/packages/discord.js/src/util/EnumResolvers.js deleted file mode 100644 index 4ac9ae1f9..000000000 --- a/packages/discord.js/src/util/EnumResolvers.js +++ /dev/null @@ -1,843 +0,0 @@ -'use strict'; - -const { - ApplicationCommandType, - InteractionType, - ComponentType, - ButtonStyle, - ApplicationCommandOptionType, - ChannelType, - ApplicationCommandPermissionType, - MessageType, - GuildNSFWLevel, - GuildVerificationLevel, - GuildDefaultMessageNotifications, - GuildExplicitContentFilter, - GuildPremiumTier, - GuildScheduledEventStatus, - StageInstancePrivacyLevel, - GuildMFALevel, - TeamMemberMembershipState, - GuildScheduledEventEntityType, - IntegrationExpireBehavior, - AuditLogEvent, - VideoQualityMode, -} = require('discord-api-types/v10'); - -function unknownKeyStrategy(val) { - throw new Error(`Could not resolve enum value for ${val}`); -} - -/** - * Holds a bunch of methods to resolve enum values to readable strings. - */ -class EnumResolvers extends null { - /** - * A string that can be resolved to a {@link ChannelType} enum value. Here are the available types: - * * GUILD_TEXT - * * DM - * * GUILD_VOICE - * * GROUP_DM - * * GUILD_CATEGORY - * * GUILD_NEWS - * * GUILD_NEWS_THREAD - * * GUILD_PUBLIC_THREAD - * * GUILD_PRIVATE_THREAD - * * GUILD_STAGE_VOICE - * @typedef {string} ChannelTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link ChannelType} enum value - * @param {ChannelTypeEnumResolvable|ChannelType} key The key to resolve - * @returns {ChannelType} - */ - static resolveChannelType(key) { - switch (key) { - case 'GUILD_TEXT': - return ChannelType.GuildText; - case 'DM': - return ChannelType.DM; - case 'GUILD_VOICE': - return ChannelType.GuildVoice; - case 'GROUP_DM': - return ChannelType.GroupDM; - case 'GUILD_CATEGORY': - return ChannelType.GuildCategory; - case 'GUILD_NEWS': - return ChannelType.GuildNews; - case 'GUILD_NEWS_THREAD': - return ChannelType.GuildNewsThread; - case 'GUILD_PUBLIC_THREAD': - return ChannelType.GuildPublicThread; - case 'GUILD_PRIVATE_THREAD': - return ChannelType.GuildPrivateThread; - case 'GUILD_STAGE_VOICE': - return ChannelType.GuildStageVoice; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to an {@link InteractionType} enum value. Here are the available types: - * * PING - * * APPLICATION_COMMAND - * * MESSAGE_COMPONENT - * * APPLICATION_COMMAND_AUTOCOMPLETE - * @typedef {string} InteractionTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link InteractionType} enum value - * @param {InteractionTypeEnumResolvable|InteractionType} key The key to resolve - * @returns {InteractionType} - */ - static resolveInteractionType(key) { - switch (key) { - case 'PING': - return InteractionType.Ping; - case 'APPLICATION_COMMAND': - return InteractionType.ApplicationCommand; - case 'MESSAGE_COMPONENT': - return InteractionType.MessageComponent; - case 'APPLICATION_COMMAND_AUTOCOMPLETE': - return InteractionType.ApplicationCommandAutocomplete; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to an {@link ApplicationCommandType} enum value. Here are the available types: - * * CHAT_INPUT - * * USER - * * MESSAGE - * @typedef {string} ApplicationCommandTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link ApplicationCommandType} enum value - * @param {ApplicationCommandTypeEnumResolvable|ApplicationCommandType} key The key to resolve - * @returns {ApplicationCommandType} - */ - static resolveApplicationCommandType(key) { - switch (key) { - case 'CHAT_INPUT': - return ApplicationCommandType.ChatInput; - case 'USER': - return ApplicationCommandType.User; - case 'MESSAGE': - return ApplicationCommandType.Message; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to an {@link ApplicationCommandOptionType} enum value. Here are the available types: - * * SUB_COMMAND - * * SUB_COMMAND_GROUP - * * STRING - * * INTEGER - * * BOOLEAN - * * USER - * * CHANNEL - * * ROLE - * * NUMBER - * * MENTIONABLE - * @typedef {string} ApplicationCommandOptionTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link ApplicationCommandOptionType} enum value - * @param {ApplicationCommandOptionTypeEnumResolvable|ApplicationCommandOptionType} key The key to resolve - * @returns {ApplicationCommandOptionType} - */ - static resolveApplicationCommandOptionType(key) { - switch (key) { - case 'SUB_COMMAND': - return ApplicationCommandOptionType.Subcommand; - case 'SUB_COMMAND_GROUP': - return ApplicationCommandOptionType.SubcommandGroup; - case 'STRING': - return ApplicationCommandOptionType.String; - case 'INTEGER': - return ApplicationCommandOptionType.Integer; - case 'BOOLEAN': - return ApplicationCommandOptionType.Boolean; - case 'USER': - return ApplicationCommandOptionType.User; - case 'CHANNEL': - return ApplicationCommandOptionType.Channel; - case 'ROLE': - return ApplicationCommandOptionType.Role; - case 'NUMBER': - return ApplicationCommandOptionType.Number; - case 'MENTIONABLE': - return ApplicationCommandOptionType.Mentionable; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to an {@link ApplicationCommandPermissionType} enum value. - * Here are the available types: - * * ROLE - * * USER - * @typedef {string} ApplicationCommandPermissionTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link ApplicationCommandPermissionType} enum value - * @param {ApplicationCommandPermissionTypeEnumResolvable|ApplicationCommandPermissionType} key The key to resolve - * @returns {ApplicationCommandPermissionType} - */ - static resolveApplicationCommandPermissionType(key) { - switch (key) { - case 'ROLE': - return ApplicationCommandPermissionType.Role; - case 'USER': - return ApplicationCommandPermissionType.User; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link ComponentType} enum value. Here are the available types: - * * ACTION_ROW - * * BUTTON - * * SELECT_MENU - * @typedef {string} ComponentTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link ComponentType} enum value - * @param {ComponentTypeEnumResolvable|ComponentType} key The key to resolve - * @returns {ComponentType} - */ - static resolveComponentType(key) { - switch (key) { - case 'ACTION_ROW': - return ComponentType.ActionRow; - case 'BUTTON': - return ComponentType.Button; - case 'SELECT_MENU': - return ComponentType.SelectMenu; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link ButtonStyle} enum value. Here are the available types: - * * PRIMARY - * * SECONDARY - * * SUCCESS - * * DANGER - * * LINK - * @typedef {string} ButtonStyleEnumResolvable - */ - - /** - * Resolves enum key to {@link ButtonStyle} enum value - * @param {ButtonStyleEnumResolvable|ButtonStyle} key The key to resolve - * @returns {ButtonStyle} - */ - static resolveButtonStyle(key) { - switch (key) { - case 'PRIMARY': - return ButtonStyle.Primary; - case 'SECONDARY': - return ButtonStyle.Secondary; - case 'SUCCESS': - return ButtonStyle.Success; - case 'DANGER': - return ButtonStyle.Danger; - case 'LINK': - return ButtonStyle.Link; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link MessageType} enum value. Here are the available types: - * * 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 - * * CHAT_INPUT_COMMAND - * * THREAD_STARTER_MESSAGE - * * GUILD_INVITE_REMINDER - * * CONTEXT_MENU_COMMAND - * @typedef {string} MessageTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link MessageType} enum value - * @param {MessageTypeEnumResolvable|MessageType} key The key to lookup - * @returns {MessageType} - */ - static resolveMessageType(key) { - switch (key) { - case 'DEFAULT': - return MessageType.Default; - case 'RECIPIENT_ADD': - return MessageType.RecipientAdd; - case 'RECIPIENT_REMOVE': - return MessageType.RecipientRemove; - case 'CALL': - return MessageType.Call; - case 'CHANNEL_NAME_CHANGE': - return MessageType.ChannelNameChange; - case 'CHANNEL_ICON_CHANGE': - return MessageType.ChannelIconChange; - case 'CHANNEL_PINNED_MESSAGE': - return MessageType.ChannelPinnedMessage; - case 'GUILD_MEMBER_JOIN': - return MessageType.GuildMemberJoin; - case 'USER_PREMIUM_GUILD_SUBSCRIPTION': - return MessageType.UserPremiumGuildSubscription; - case 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1': - return MessageType.UserPremiumGuildSubscriptionTier1; - case 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2': - return MessageType.UserPremiumGuildSubscriptionTier2; - case 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3': - return MessageType.UserPremiumGuildSubscriptionTier3; - case 'CHANNEL_FOLLOW_ADD': - return MessageType.ChannelFollowAdd; - case 'GUILD_DISCOVERY_DISQUALIFIED': - return MessageType.GuildDiscoveryDisqualified; - case 'GUILD_DISCOVERY_REQUALIFIED': - return MessageType.GuildDiscoveryRequalified; - case 'GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING': - return MessageType.GuildDiscoveryGracePeriodInitialWarning; - case 'GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING': - return MessageType.GuildDiscoveryGracePeriodFinalWarning; - case 'THREAD_CREATED': - return MessageType.ThreadCreated; - case 'REPLY': - return MessageType.Reply; - case 'CHAT_INPUT_COMMAND': - return MessageType.ChatInputCommand; - case 'THREAD_STARTER_MESSAGE': - return MessageType.ThreadStarterMessage; - case 'GUILD_INVITE_REMINDER': - return MessageType.GuildInviteReminder; - case 'CONTEXT_MENU_COMMAND': - return MessageType.ContextMenuCommand; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildNSFWLevel} enum value. Here are the available types: - * * DEFAULT - * * EXPLICIT - * * SAFE - * * AGE_RESTRICTED - * @typedef {string} GuildNSFWLevelEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildNSFWLevel} enum value - * @param {GuildNSFWLevelEnumResolvable|GuildNSFWLevel} key The key to lookup - * @returns {GuildNSFWLevel} - */ - static resolveGuildNSFWLevel(key) { - switch (key) { - case 'DEFAULT': - return GuildNSFWLevel.Default; - case 'EXPLICIT': - return GuildNSFWLevel.Explicit; - case 'SAFE': - return GuildNSFWLevel.Safe; - case 'AGE_RESTRICTED': - return GuildNSFWLevel.AgeRestricted; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildVerificationLevel} enum value. Here are the available types: - * * NONE - * * LOW - * * MEDIUM - * * HIGH - * * VERY_HIGH - * @typedef {string} GuildVerificationLevelEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildVerificationLevel} enum value - * @param {GuildVerificationLevelEnumResolvable|GuildVerificationLevel} key The key to lookup - * @returns {GuildVerificationLevel} - */ - static resolveGuildVerificationLevel(key) { - switch (key) { - case 'NONE': - return GuildVerificationLevel.None; - case 'LOW': - return GuildVerificationLevel.Low; - case 'MEDIUM': - return GuildVerificationLevel.Medium; - case 'HIGH': - return GuildVerificationLevel.High; - case 'VERY_HIGH': - return GuildVerificationLevel.VeryHigh; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildDefaultMessageNotifications} enum value. - * Here are the available types: - * * ALL_MESSAGES - * * ONLY_MENTIONS - * @typedef {string} GuildDefaultMessageNotificationsEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildDefaultMessageNotifications} enum value - * @param {GuildDefaultMessageNotificationsEnumResolvable|GuildDefaultMessageNotifications} key The key to lookup - * @returns {GuildDefaultMessageNotifications} - */ - static resolveGuildDefaultMessageNotifications(key) { - switch (key) { - case 'ALL_MESSAGES': - return GuildDefaultMessageNotifications.AllMessages; - case 'ONLY_MENTIONS': - return GuildDefaultMessageNotifications.OnlyMentions; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildExplicitContentFilter} enum value. Here are the available types: - * * DISABLED - * * MEMBERS_WITHOUT_ROLES - * * ALL_MEMBERS - * @typedef {string} GuildExplicitContentFilterEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildExplicitContentFilter} enum value - * @param {GuildExplicitContentFilterEnumResolvable|GuildExplicitContentFilter} key The key to lookup - * @returns {GuildExplicitContentFilter} - */ - static resolveGuildExplicitContentFilter(key) { - switch (key) { - case 'DISABLED': - return GuildExplicitContentFilter.Disabled; - case 'MEMBERS_WITHOUT_ROLES': - return GuildExplicitContentFilter.MembersWithoutRoles; - case 'ALL_MEMBERS': - return GuildExplicitContentFilter.AllMembers; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildPremiumTier} enum value. Here are the available types: - * * NONE - * * TIER_1 - * * TIER_2 - * * TIER_3 - * @typedef {string} GuildPremiumTierEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildPremiumTier} enum value - * @param {GuildPremiumTierEnumResolvable|GuildPremiumTier} key The key to lookup - * @returns {GuildPremiumTier} - */ - static resolveGuildPremiumTier(key) { - switch (key) { - case 'NONE': - return GuildPremiumTier.None; - case 'TIER_1': - return GuildPremiumTier.Tier1; - case 'TIER_2': - return GuildPremiumTier.Tier2; - case 'TIER_3': - return GuildPremiumTier.Tier3; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildScheduledEventStatus} enum value. Here are the available types: - * * SCHEDULED - * * ACTIVE - * * COMPLETED - * * CANCELED - * @typedef {string} GuildScheduledEventStatusEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildScheduledEventStatus} enum value - * @param {GuildScheduledEventStatusEnumResolvable|GuildScheduledEventStatus} key The key to lookup - * @returns {GuildScheduledEventStatus} - */ - static resolveGuildScheduledEventStatus(key) { - switch (key) { - case 'SCHEDULED': - return GuildScheduledEventStatus.Scheduled; - case 'ACTIVE': - return GuildScheduledEventStatus.Active; - case 'COMPLETED': - return GuildScheduledEventStatus.Completed; - case 'CANCELED': - return GuildScheduledEventStatus.Canceled; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link StageInstancePrivacyLevel} enum value. Here are the available types: - * * PUBLIC - * * GUILD_ONLY - * @typedef {string} StageInstancePrivacyLevelEnumResolvable - */ - - /** - * Resolves enum key to {@link StageInstancePrivacyLevel} enum value - * @param {StageInstancePrivacyLevelEnumResolvable|StageInstancePrivacyLevel} key The key to lookup - * @returns {StageInstancePrivacyLevel} - */ - static resolveStageInstancePrivacyLevel(key) { - switch (key) { - case 'PUBLIC': - return StageInstancePrivacyLevel.Public; - case 'GUILD_ONLY': - return StageInstancePrivacyLevel.GuildOnly; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildMFALevel} enum value. Here are the available types: - * * NONE - * * ELEVATED - * @typedef {string} GuildMFALevelEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildMFALevel} enum value - * @param {GuildMFALevelEnumResolvable|GuildMFALevel} key The key to lookup - * @returns {GuildMFALevel} - */ - static resolveGuildMFALevel(key) { - switch (key) { - case 'NONE': - return GuildMFALevel.None; - case 'ELEVATED': - return GuildMFALevel.Elevated; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link TeamMemberMembershipState} enum value. Here are the available types: - * * INVITED - * * ACCEPTED - * @typedef {string} TeamMemberMembershipStateEnumResolvable - */ - - /** - * Resolves enum key to {@link TeamMemberMembershipState} enum value - * @param {TeamMemberMembershipStateEnumResolvable|TeamMemberMembershipState} key The key to lookup - * @returns {TeamMemberMembershipState} - */ - static resolveTeamMemberMembershipState(key) { - switch (key) { - case 'INVITED': - return TeamMemberMembershipState.Invited; - case 'ACCEPTED': - return TeamMemberMembershipState.Accepted; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link GuildScheduledEventEntityType} enum value. Here are the available types: - * * STAGE_INSTANCE - * * VOICE - * * EXTERNAL - * @typedef {string} GuildScheduledEventEntityTypeEnumResolvable - */ - - /** - * Resolves enum key to {@link GuildScheduledEventEntityType} enum value - * @param {GuildScheduledEventEntityTypeEnumResolvable|GuildScheduledEventEntityType} key The key to lookup - * @returns {GuildScheduledEventEntityType} - */ - static resolveGuildScheduledEventEntityType(key) { - switch (key) { - case 'STAGE_INSTANCE': - return GuildScheduledEventEntityType.StageInstance; - case 'VOICE': - return GuildScheduledEventEntityType.Voice; - case 'EXTERNAL': - return GuildScheduledEventEntityType.External; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link IntegrationExpireBehavior} enum value. Here are the available types: - * * REMOVE_ROLE - * * KICK - * @typedef {string} IntegrationExpireBehaviorEnumResolvable - */ - - /** - * Resolves enum key to {@link IntegrationExpireBehavior} enum value - * @param {IntegrationExpireBehaviorEnumResolvable|IntegrationExpireBehavior} key The key to lookup - * @returns {IntegrationExpireBehavior} - */ - static resolveIntegrationExpireBehavior(key) { - switch (key) { - case 'REMOVE_ROLE': - return IntegrationExpireBehavior.RemoveRole; - case 'KICK': - return IntegrationExpireBehavior.Kick; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link AuditLogEvent} enum value. Here are the available types: - * * GUILD_UPDATE - * * CHANNEL_CREATE - * * CHANNEL_UPDATE - * * CHANNEL_DELETE - * * CHANNEL_OVERWRITE_CREATE - * * CHANNEL_OVERWRITE_UPDATE - * * CHANNEL_OVERWRITE_DELETE - * * MEMBER_KICK - * * MEMBER_PRUNE - * * MEMBER_BAN_ADD - * * MEMBER_BAN_REMOVE - * * MEMBER_UPDATE - * * MEMBER_ROLE_UPDATE - * * MEMBER_MOVE - * * MEMBER_DISCONNECT - * * BOT_ADD - * * ROLE_CREATE - * * ROLE_UPDATE - * * ROLE_DELETE - * * INVITE_CREATE - * * INVITE_UPDATE - * * INVITE_DELETE - * * WEBHOOK_CREATE - * * WEBHOOK_UPDATE - * * WEBHOOK_DELETE - * * INTEGRATION_CREATE - * * INTEGRATION_UPDATE - * * INTEGRATION_DELETE - * * STAGE_INSTANCE_CREATE - * * STAGE_INSTANCE_UPDATE - * * STAGE_INSTANCE_DELETE - * * STICKER_CREATE - * * STICKER_UPDATE - * * STICKER_DELETE - * * GUILD_SCHEDULED_EVENT_CREATE - * * GUILD_SCHEDULED_EVENT_UPDATE - * * GUILD_SCHEDULED_EVENT_DELETE - * * THREAD_CREATE - * * THREAD_UPDATE - * * THREAD_DELETE - * @typedef {string} AuditLogEventEnumResolvable - */ - - /** - * Resolves enum key to {@link AuditLogEvent} enum value - * @param {AuditLogEventEnumResolvable|AuditLogEvent} key The key to lookup - * @returns {AuditLogEvent} - */ - static resolveAuditLogEvent(key) { - switch (key) { - case 'GUILD_UPDATE': - return AuditLogEvent.GuildUpdate; - case 'CHANNEL_CREATE': - return AuditLogEvent.ChannelCreate; - case 'CHANNEL_UPDATE': - return AuditLogEvent.ChannelUpdate; - case 'CHANNEL_DELETE': - return AuditLogEvent.ChannelDelete; - case 'CHANNEL_OVERWRITE_CREATE': - return AuditLogEvent.ChannelOverwriteCreate; - case 'CHANNEL_OVERWRITE_UPDATE': - return AuditLogEvent.ChannelOverwriteUpdate; - case 'CHANNEL_OVERWRITE_DELETE': - return AuditLogEvent.ChannelOverwriteDelete; - case 'MEMBER_KICK': - return AuditLogEvent.MemberKick; - case 'MEMBER_PRUNE': - return AuditLogEvent.MemberPrune; - case 'MEMBER_BAN_ADD': - return AuditLogEvent.MemberBanAdd; - case 'MEMBER_BAN_REMOVE': - return AuditLogEvent.MemberBanRemove; - case 'MEMBER_UPDATE': - return AuditLogEvent.MemberUpdate; - case 'MEMBER_ROLE_UPDATE': - return AuditLogEvent.MemberRoleUpdate; - case 'MEMBER_MOVE': - return AuditLogEvent.MemberMove; - case 'MEMBER_DISCONNECT': - return AuditLogEvent.MemberDisconnect; - case 'BOT_ADD': - return AuditLogEvent.BotAdd; - case 'ROLE_CREATE': - return AuditLogEvent.RoleCreate; - case 'ROLE_UPDATE': - return AuditLogEvent.RoleUpdate; - case 'ROLE_DELETE': - return AuditLogEvent.RoleDelete; - case 'INVITE_CREATE': - return AuditLogEvent.InviteCreate; - case 'INVITE_UPDATE': - return AuditLogEvent.InviteUpdate; - case 'INVITE_DELETE': - return AuditLogEvent.InviteDelete; - case 'WEBHOOK_CREATE': - return AuditLogEvent.WebhookCreate; - case 'WEBHOOK_UPDATE': - return AuditLogEvent.WebhookUpdate; - case 'WEBHOOK_DELETE': - return AuditLogEvent.WebhookDelete; - case 'EMOJI_CREATE': - return AuditLogEvent.EmojiCreate; - case 'EMOJI_UPDATE': - return AuditLogEvent.EmojiUpdate; - case 'EMOJI_DELETE': - return AuditLogEvent.EmojiDelete; - case 'MESSAGE_DELETE': - return AuditLogEvent.MessageDelete; - case 'MESSAGE_BULK_DELETE': - return AuditLogEvent.MessageBulkDelete; - case 'MESSAGE_PIN': - return AuditLogEvent.MessagePin; - case 'MESSAGE_UNPIN': - return AuditLogEvent.MessageUnpin; - case 'INTEGRATION_CREATE': - return AuditLogEvent.IntegrationCreate; - case 'INTEGRATION_UPDATE': - return AuditLogEvent.IntegrationUpdate; - case 'INTEGRATION_DELETE': - return AuditLogEvent.IntegrationDelete; - case 'STAGE_INSTANCE_CREATE': - return AuditLogEvent.StageInstanceCreate; - case 'STAGE_INSTANCE_UPDATE': - return AuditLogEvent.StageInstanceUpdate; - case 'STAGE_INSTANCE_DELETE': - return AuditLogEvent.StageInstanceDelete; - case 'STICKER_CREATE': - return AuditLogEvent.StickerCreate; - case 'STICKER_UPDATE': - return AuditLogEvent.StickerUpdate; - case 'STICKER_DELETE': - return AuditLogEvent.StickerDelete; - case 'GUILD_SCHEDULED_EVENT_CREATE': - return AuditLogEvent.GuildScheduledEventCreate; - case 'GUILD_SCHEDULED_EVENT_UPDATE': - return AuditLogEvent.GuildScheduledEventUpdate; - case 'GUILD_SCHEDULED_EVENT_DELETE': - return AuditLogEvent.GuildScheduledEventDelete; - case 'THREAD_CREATE': - return AuditLogEvent.ThreadCreate; - case 'THREAD_UPDATE': - return AuditLogEvent.ThreadUpdate; - case 'THREAD_DELETE': - return AuditLogEvent.ThreadDelete; - default: - return unknownKeyStrategy(key); - } - } - - /** - * A string that can be resolved to a {@link VideoQualityMode} enum value. Here are the available types: - * * AUTO (automatic) - * * FULL (720p) - * @typedef {string} VideoQualityModeEnumResolvable - */ - - /** - * Resolves enum key to {@link VideoQualityMode} enum value - * @param {VideoQualityModeEnumResolvable|VideoQualityMode} key The key to lookup - * @returns {VideoQualityMode} - */ - static resolveVideoQualityMode(key) { - switch (key) { - case 'AUTO': - return VideoQualityMode.Auto; - case 'FULL': - return VideoQualityMode.Full; - default: - return unknownKeyStrategy(key); - } - } -} - -// Precondition logic wrapper -function preconditioner(func) { - return key => { - if (typeof key !== 'string' && typeof key !== 'number') { - throw new Error('Enum value must be string or number'); - } - - if (typeof key === 'number') { - return key; - } - - return func(key); - }; -} - -// Injects wrapper into class static methods. -function applyPreconditioner(obj) { - for (const name in Object.getOwnPropertyNames(obj)) { - if (typeof obj[name] !== 'function') { - return; - } - - obj[name] = preconditioner(obj[name]); - } -} - -// Apply precondition logic -applyPreconditioner(EnumResolvers); - -module.exports = EnumResolvers; diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 26b63e564..38bda77b6 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -1019,53 +1019,6 @@ export class DataResolver extends null { public static resolveGuildTemplateCode(data: GuildTemplateResolvable): string; } -export class EnumResolvers extends null { - private constructor(); - public static resolveChannelType(key: ChannelTypeEnumResolvable | ChannelType): ChannelType; - public static resolveInteractionType(key: InteractionTypeEnumResolvable | InteractionType): InteractionType; - public static resolveApplicationCommandType( - key: ApplicationCommandTypeEnumResolvable | ApplicationCommandType, - ): ApplicationCommandType; - public static resolveApplicationCommandOptionType( - key: ApplicationCommandOptionTypeEnumResolvable | ApplicationCommandOptionType, - ): ApplicationCommandOptionType; - public static resolveApplicationCommandPermissionType( - key: ApplicationCommandPermissionTypeEnumResolvable | ApplicationCommandPermissionType, - ): ApplicationCommandPermissionType; - public static resolveComponentType(key: ComponentTypeEnumResolvable | ComponentType): ComponentType; - public static resolveButtonStyle(key: ButtonStyleEnumResolvable | ButtonStyle): ButtonStyle; - public static resolveMessageType(key: MessageTypeEnumResolvable | MessageType): MessageType; - public static resolveGuildNSFWLevel(key: GuildNSFWLevelEnumResolvable | GuildNSFWLevel): GuildNSFWLevel; - public static resolveGuildVerificationLevel( - key: GuildVerificationLevelEnumResolvable | GuildVerificationLevel, - ): GuildVerificationLevel; - public static resolveGuildDefaultMessageNotifications( - key: GuildDefaultMessageNotificationsEnumResolvable | GuildDefaultMessageNotifications, - ): GuildDefaultMessageNotifications; - public static resolveGuildExplicitContentFilter( - key: GuildExplicitContentFilterEnumResolvable | GuildExplicitContentFilter, - ): GuildExplicitContentFilter; - public static resolveGuildPremiumTier(key: GuildPremiumTierEnumResolvable | GuildPremiumTier): GuildPremiumTier; - public static resolveGuildScheduledEventStatus( - key: GuildScheduledEventStatusEnumResolvable | GuildScheduledEventStatus, - ): GuildScheduledEventStatus; - public static resolveStageInstancePrivacyLevel( - key: StageInstancePrivacyLevelEnumResolvable | StageInstancePrivacyLevel, - ): StageInstancePrivacyLevel; - public static resolveGuildMFALevel(key: GuildMFALevelEnumResolvable | GuildMFALevel): GuildMFALevel; - public static resolveTeamMemberMembershipState( - key: TeamMemberMembershipStateEnumResolvable | TeamMemberMembershipState, - ): TeamMemberMembershipState; - public static resolveGuildScheduledEventEntityType( - key: GuildScheduledEventEntityTypeEnumResolvable | GuildScheduledEventEntityType, - ): GuildScheduledEventEntityType; - public static resolveIntegrationExpireBehavior( - key: IntegrationExpireBehaviorEnumResolvable | IntegrationExpireBehavior, - ): IntegrationExpireBehavior; - public static resolveAuditLogEvent(key: AuditLogEventEnumResolvable | AuditLogEvent): AuditLogEvent; - public static resolveVideoQualityMode(key: VideoQualityModeEnumResolvable | VideoQualityMode): VideoQualityMode; -} - export class DMChannel extends TextBasedChannelMixin(Channel, ['bulkDelete', 'fetchWebhooks', 'createWebhook']) { private constructor(client: Client, data?: RawDMChannelData); public recipientId: Snowflake; @@ -4115,135 +4068,6 @@ export type EmojiIdentifierResolvable = string | EmojiResolvable; export type EmojiResolvable = Snowflake | GuildEmoji | ReactionEmoji; -export type ChannelTypeEnumResolvable = - | 'GUILD_TEXT' - | 'DM' - | 'GUILD_VOICE' - | 'GROUP_DM' - | 'GUILD_CATEGORY' - | 'GUILD_NEWS' - | 'GUILD_NEWS_THREAD' - | 'GUILD_PUBLIC_THREAD' - | 'GUILD_PRIVATE_THREAD' - | 'GUILD_STAGE_VOICE'; - -export type InteractionTypeEnumResolvable = - | 'PING' - | 'APPLICATION_COMMAND' - | 'MESSAGE_COMPONENT' - | 'APPLICATION_COMMAND_AUTOCOMPLETE'; - -export type ApplicationCommandTypeEnumResolvable = 'CHAT_INPUT' | 'USER' | 'MESSAGE'; - -export type ApplicationCommandOptionTypeEnumResolvable = - | 'SUB_COMMAND' - | 'SUB_COMMAND_GROUP' - | 'STRING' - | 'INTEGER' - | 'BOOLEAN' - | 'USER' - | 'CHANNEL' - | 'ROLE' - | 'NUMBER' - | 'MENTIONABLE'; - -export type ApplicationCommandPermissionTypeEnumResolvable = 'ROLE' | 'USER'; - -export type ComponentTypeEnumResolvable = 'ACTION_ROW' | 'BUTTON' | 'SELECT_MENU'; - -export type ButtonStyleEnumResolvable = 'PRIMARY' | 'SECONDARY' | 'SUCCESS' | 'DANGER' | 'LINK'; - -export type MessageTypeEnumResolvable = - | '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' - | 'CHAT_INPUT_COMMAND' - | 'THREAD_STARTER_MESSAGE' - | 'GUILD_INVITE_REMINDER' - | 'CONTEXT_MENU_COMMAND'; - -export type GuildNSFWLevelEnumResolvable = 'DEFAULT' | 'EXPLICIT' | 'SAFE' | 'AGE_RESTRICTED'; - -export type GuildVerificationLevelEnumResolvable = 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH' | 'VERY_HIGH'; - -export type GuildDefaultMessageNotificationsEnumResolvable = 'ALL_MESSAGES' | 'ONLY_MENTIONS'; - -export type GuildExplicitContentFilterEnumResolvable = 'DISABLED' | 'MEMBERS_WITHOUT_ROLES' | 'ALL_MEMBERS'; - -export type GuildPremiumTierEnumResolvable = 'NONE' | 'TIER_1' | 'TIER_2' | 'TIER_3'; - -export type GuildScheduledEventStatusEnumResolvable = 'SCHEDULED' | 'ACTIVE' | 'COMPLETED' | 'CANCELED'; - -export type StageInstancePrivacyLevelEnumResolvable = 'PUBLIC' | 'GUILD_ONLY'; - -export type GuildMFALevelEnumResolvable = 'NONE' | 'ELEVATED'; - -export type TeamMemberMembershipStateEnumResolvable = 'INVITED' | 'ACCEPTED'; - -export type GuildScheduledEventEntityTypeEnumResolvable = 'STAGE_INSTANCE' | 'VOICE' | 'EXTERNAL'; - -export type IntegrationExpireBehaviorEnumResolvable = 'REMOVE_ROLE' | 'KICK'; - -export type AuditLogEventEnumResolvable = - | 'GUILD_UPDATE' - | 'CHANNEL_CREATE' - | 'CHANNEL_UPDATE' - | 'CHANNEL_DELETE' - | 'CHANNEL_OVERWRITE_CREATE' - | 'CHANNEL_OVERWRITE_UPDATE' - | 'CHANNEL_OVERWRITE_DELETE' - | 'MEMBER_KICK' - | 'MEMBER_PRUNE' - | 'MEMBER_BAN_ADD' - | 'MEMBER_BAN_REMOVE' - | 'MEMBER_UPDATE' - | 'MEMBER_ROLE_UPDATE' - | 'MEMBER_MOVE' - | 'MEMBER_DISCONNECT' - | 'BOT_ADD' - | 'ROLE_CREATE' - | 'ROLE_UPDATE' - | 'ROLE_DELETE' - | 'INVITE_CREATE' - | 'INVITE_UPDATE' - | 'INVITE_DELETE' - | 'WEBHOOK_CREATE' - | 'WEBHOOK_UPDATE' - | 'WEBHOOK_DELETE' - | 'INTEGRATION_CREATE' - | 'INTEGRATION_UPDATE' - | 'INTEGRATION_DELETE' - | 'STAGE_INSTANCE_CREATE' - | 'STAGE_INSTANCE_UPDATE' - | 'STAGE_INSTANCE_DELETE' - | 'STICKER_CREATE' - | 'STICKER_UPDATE' - | 'STICKER_DELETE' - | 'GUILD_SCHEDULED_EVENT_CREATE' - | 'GUILD_SCHEDULED_EVENT_UPDATE' - | 'GUILD_SCHEDULED_EVENT_DELETE' - | 'THREAD_CREATE' - | 'THREAD_UPDATE' - | 'THREAD_DELETE'; - -export type VideoQualityModeEnumResolvable = 'AUTO' | 'FULL'; - export interface ErrorEvent { error: unknown; message: string;