mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
types(ApplicationCommandManager): Deprecate old *Data type usages and allow camel cased dapi types to be used (#6959)
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import type { ChildProcess } from 'child_process';
|
||||
import type {
|
||||
import {
|
||||
APIInteractionGuildMember,
|
||||
APIMessage,
|
||||
APIPartialChannel,
|
||||
@@ -7,15 +6,21 @@ import type {
|
||||
APIInteractionDataResolvedGuildMember,
|
||||
APIInteractionDataResolvedChannel,
|
||||
APIRole,
|
||||
ChannelType,
|
||||
ApplicationCommandOptionType,
|
||||
APIApplicationCommand,
|
||||
APIApplicationCommandOption,
|
||||
APIApplicationCommandSubCommandOptions,
|
||||
} from 'discord-api-types/v9';
|
||||
import type { ChildProcess } from 'node:child_process';
|
||||
import {
|
||||
ApplicationCommand,
|
||||
ApplicationCommandData,
|
||||
ApplicationCommandChannelOptionData,
|
||||
ApplicationCommandChoicesData,
|
||||
ApplicationCommandManager,
|
||||
ApplicationCommandOptionData,
|
||||
ApplicationCommandNonOptionsData,
|
||||
ApplicationCommandResolvable,
|
||||
ApplicationCommandSubCommandData,
|
||||
ApplicationCommandSubGroupData,
|
||||
BaseCommandInteraction,
|
||||
ButtonInteraction,
|
||||
CacheType,
|
||||
@@ -28,7 +33,6 @@ import {
|
||||
CommandInteraction,
|
||||
CommandInteractionOption,
|
||||
CommandInteractionOptionResolver,
|
||||
CommandOptionNonChoiceResolvableType,
|
||||
Constants,
|
||||
ContextMenuInteraction,
|
||||
DMChannel,
|
||||
@@ -77,6 +81,9 @@ import {
|
||||
User,
|
||||
VoiceChannel,
|
||||
Shard,
|
||||
Camelize,
|
||||
ApplicationCommandAutocompleteOption,
|
||||
ApplicationCommandNumericOptionData,
|
||||
WebSocketShard,
|
||||
Collector,
|
||||
} from '.';
|
||||
@@ -686,6 +693,20 @@ client.login('absolutely-valid-token');
|
||||
// Test client conditional types
|
||||
client.on('ready', client => {
|
||||
expectType<Client<true>>(client);
|
||||
|
||||
// Test camelized post command data.
|
||||
client.application.commands.create({
|
||||
name: 'Foo',
|
||||
description: 'Bar',
|
||||
options: [
|
||||
{
|
||||
name: 'test',
|
||||
description: 'test',
|
||||
type: ApplicationCommandOptionType.Channel,
|
||||
channelTypes: [ChannelType.GuildCategory],
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
declare const loggedInClient: Client<true>;
|
||||
@@ -783,7 +804,7 @@ expectType<1>(Constants.Status.CONNECTING);
|
||||
expectType<0>(Constants.Opcodes.DISPATCH);
|
||||
expectType<2>(Constants.ClientApplicationAssetTypes.BIG);
|
||||
|
||||
declare const applicationCommandData: ApplicationCommandData;
|
||||
declare const applicationCommandData: Camelize<APIApplicationCommand>;
|
||||
declare const applicationCommandResolvable: ApplicationCommandResolvable;
|
||||
declare const applicationCommandManager: ApplicationCommandManager;
|
||||
{
|
||||
@@ -805,22 +826,29 @@ declare const applicationCommandManager: ApplicationCommandManager;
|
||||
);
|
||||
}
|
||||
|
||||
declare const applicationNonChoiceOptionData: ApplicationCommandOptionData & {
|
||||
type: CommandOptionNonChoiceResolvableType;
|
||||
};
|
||||
declare const applicationSubGroupCommandData: Camelize<APIApplicationCommandSubCommandOptions>;
|
||||
{
|
||||
// Options aren't allowed on this command type.
|
||||
|
||||
// @ts-expect-error
|
||||
applicationNonChoiceOptionData.choices;
|
||||
}
|
||||
|
||||
declare const applicationSubGroupCommandData: ApplicationCommandSubGroupData;
|
||||
{
|
||||
expectType<'SUB_COMMAND_GROUP' | ApplicationCommandOptionTypes.SUB_COMMAND_GROUP>(
|
||||
expectType<ApplicationCommandOptionType.Subcommand | ApplicationCommandOptionType.SubcommandGroup>(
|
||||
applicationSubGroupCommandData.type,
|
||||
);
|
||||
expectType<ApplicationCommandSubCommandData[] | undefined>(applicationSubGroupCommandData.options);
|
||||
expectAssignable<APIApplicationCommandOption[] | undefined>(applicationSubGroupCommandData.options);
|
||||
}
|
||||
|
||||
declare const applicationSubCommandData: ApplicationCommandSubCommandData;
|
||||
{
|
||||
expectType<'SUB_COMMAND' | ApplicationCommandOptionTypes.SUB_COMMAND>(applicationSubCommandData.type);
|
||||
|
||||
// Check that only subcommands can have no subcommand or subcommand group sub-options.
|
||||
expectType<
|
||||
| (
|
||||
| ApplicationCommandChoicesData
|
||||
| ApplicationCommandNonOptionsData
|
||||
| ApplicationCommandChannelOptionData
|
||||
| ApplicationCommandAutocompleteOption
|
||||
| ApplicationCommandNumericOptionData
|
||||
)[]
|
||||
| undefined
|
||||
>(applicationSubCommandData.options);
|
||||
}
|
||||
|
||||
declare const guildApplicationCommandManager: GuildApplicationCommandManager;
|
||||
|
||||
Reference in New Issue
Block a user