diff --git a/packages/builders/__tests__/types.test-d.ts b/packages/builders/__tests__/types.test-d.ts index cac2e595a..e8f4504f1 100644 --- a/packages/builders/__tests__/types.test-d.ts +++ b/packages/builders/__tests__/types.test-d.ts @@ -1,10 +1,14 @@ +import type { ApplicationCommandOptionAllowedChannelType } from 'discord-api-types/v10'; import { expectTypeOf } from 'vitest'; import { + type ApplicationCommandOptionAllowedChannelTypes, ChatInputCommandBuilder, ChatInputCommandStringOption, ChatInputCommandSubcommandBuilder, } from '../src/index.js'; +type AssertNever = Type; + const getBuilder = () => new ChatInputCommandBuilder(); const getStringOption = () => new ChatInputCommandStringOption().setName('owo').setDescription('Testing 123'); const getSubcommand = () => new ChatInputCommandSubcommandBuilder().setName('owo').setDescription('Testing 123'); @@ -19,3 +23,7 @@ type BuilderPropsOnly = Pick< expectTypeOf(getBuilder().addStringOptions(getStringOption())).toMatchTypeOf(); expectTypeOf(getBuilder().addSubcommands(getSubcommand())).toMatchTypeOf(); + +export type CheckExhaustiveAllowedChannelTypes = AssertNever< + Exclude +>; diff --git a/packages/builders/src/interactions/commands/chatInput/mixins/ApplicationCommandOptionChannelTypesMixin.ts b/packages/builders/src/interactions/commands/chatInput/mixins/ApplicationCommandOptionChannelTypesMixin.ts index 40d0e8826..3505bb080 100644 --- a/packages/builders/src/interactions/commands/chatInput/mixins/ApplicationCommandOptionChannelTypesMixin.ts +++ b/packages/builders/src/interactions/commands/chatInput/mixins/ApplicationCommandOptionChannelTypesMixin.ts @@ -16,6 +16,8 @@ export const ApplicationCommandOptionAllowedChannelTypes = [ ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia, + ChannelType.DM, + ChannelType.GroupDM, ] as const satisfies readonly ApplicationCommandOptionAllowedChannelType[]; export interface ApplicationCommandOptionChannelTypesData extends Pick<