fix: move required out of subcommands and groups

This commit is contained in:
Jiralite
2026-09-08 14:39:29 +01:00
parent 50752c0cba
commit 01ac3d1c29
41 changed files with 222 additions and 72 deletions
@@ -1,10 +1,10 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type FileUploadType = 'audio' | 'image' | 'video' | `.${string}`;
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Attachment> {
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Attachment> {
file_types?: FileUploadType[];
}
@@ -7,6 +7,11 @@ export interface APIApplicationCommandOptionBase<Type extends ApplicationCommand
name_localizations?: LocalizationMap | null;
description: string;
description_localizations?: LocalizationMap | null;
}
export interface APIApplicationCommandBasicOptionBase<
Type extends ApplicationCommandOptionType,
> extends APIApplicationCommandOptionBase<Type> {
required?: boolean;
}
@@ -1,7 +1,8 @@
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandBooleanOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandBooleanOption =
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandInteractionDataBooleanOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Boolean,
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { ApplicationCommandOptionAllowedChannelType } from '../../../channel.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandChannelOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Channel> {
export interface APIApplicationCommandChannelOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Channel> {
channel_types?: ApplicationCommandOptionAllowedChannelType[];
}
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandMentionableOption =
APIApplicationCommandOptionBase<ApplicationCommandOptionType.Mentionable>;
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Mentionable>;
export type APIApplicationCommandInteractionDataMentionableOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Mentionable,
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandRoleOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandRoleOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandInteractionDataRoleOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Role,
@@ -1,11 +1,11 @@
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandUserOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandUserOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandInteractionDataUserOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.User,
@@ -1,10 +1,10 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type FileUploadType = 'audio' | 'image' | 'video' | `.${string}`;
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Attachment> {
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Attachment> {
file_types?: FileUploadType[];
}
@@ -7,6 +7,11 @@ export interface APIApplicationCommandOptionBase<Type extends ApplicationCommand
name_localizations?: LocalizationMap | null;
description: string;
description_localizations?: LocalizationMap | null;
}
export interface APIApplicationCommandBasicOptionBase<
Type extends ApplicationCommandOptionType,
> extends APIApplicationCommandOptionBase<Type> {
required?: boolean;
}
@@ -1,7 +1,8 @@
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandBooleanOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandBooleanOption =
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandInteractionDataBooleanOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Boolean,
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { ChannelType } from '../../../channel.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandChannelOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Channel> {
export interface APIApplicationCommandChannelOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Channel> {
channel_types?: Exclude<ChannelType, ChannelType.GuildDirectory>[];
}
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandMentionableOption =
APIApplicationCommandOptionBase<ApplicationCommandOptionType.Mentionable>;
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Mentionable>;
export type APIApplicationCommandInteractionDataMentionableOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Mentionable,
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses.ts';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandRoleOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandRoleOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandInteractionDataRoleOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Role,
@@ -1,11 +1,11 @@
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base.ts';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared.ts';
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals.ts';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base.ts';
import type { ApplicationCommandOptionType } from './shared.ts';
export type APIApplicationCommandUserOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandUserOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandInteractionDataUserOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.User,
@@ -1,10 +1,10 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type FileUploadType = 'audio' | 'image' | 'video' | `.${string}`;
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Attachment> {
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Attachment> {
file_types?: FileUploadType[];
}
@@ -7,6 +7,11 @@ export interface APIApplicationCommandOptionBase<Type extends ApplicationCommand
name_localizations?: LocalizationMap | null;
description: string;
description_localizations?: LocalizationMap | null;
}
export interface APIApplicationCommandBasicOptionBase<
Type extends ApplicationCommandOptionType,
> extends APIApplicationCommandOptionBase<Type> {
required?: boolean;
}
@@ -1,7 +1,8 @@
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandBooleanOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandBooleanOption =
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandInteractionDataBooleanOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Boolean,
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals';
import type { ApplicationCommandOptionAllowedChannelType } from '../../../channel';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandChannelOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Channel> {
export interface APIApplicationCommandChannelOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Channel> {
channel_types?: ApplicationCommandOptionAllowedChannelType[];
}
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandMentionableOption =
APIApplicationCommandOptionBase<ApplicationCommandOptionType.Mentionable>;
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Mentionable>;
export type APIApplicationCommandInteractionDataMentionableOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Mentionable,
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandRoleOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandRoleOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandInteractionDataRoleOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Role,
@@ -1,11 +1,11 @@
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandUserOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandUserOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandInteractionDataUserOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.User,
@@ -1,10 +1,10 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type FileUploadType = 'audio' | 'image' | 'video' | `.${string}`;
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Attachment> {
export interface APIApplicationCommandAttachmentOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Attachment> {
file_types?: FileUploadType[];
}
@@ -7,6 +7,11 @@ export interface APIApplicationCommandOptionBase<Type extends ApplicationCommand
name_localizations?: LocalizationMap | null;
description: string;
description_localizations?: LocalizationMap | null;
}
export interface APIApplicationCommandBasicOptionBase<
Type extends ApplicationCommandOptionType,
> extends APIApplicationCommandOptionBase<Type> {
required?: boolean;
}
@@ -1,7 +1,8 @@
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandBooleanOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandBooleanOption =
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Boolean>;
export type APIApplicationCommandInteractionDataBooleanOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Boolean,
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals';
import type { ChannelType } from '../../../channel';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandChannelOption extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Channel> {
export interface APIApplicationCommandChannelOption extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Channel> {
channel_types?: Exclude<ChannelType, ChannelType.GuildDirectory>[];
}
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Integer> {
export interface APIApplicationCommandIntegerOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Integer> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,9 +1,9 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandMentionableOption =
APIApplicationCommandOptionBase<ApplicationCommandOptionType.Mentionable>;
APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Mentionable>;
export type APIApplicationCommandInteractionDataMentionableOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Mentionable,
@@ -1,12 +1,12 @@
import type { InteractionType } from '../../responses';
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.Number> {
export interface APIApplicationCommandNumberOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Number> {
/**
* If the option is an `INTEGER` or `NUMBER` type, the minimum value permitted.
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandRoleOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandRoleOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.Role>;
export type APIApplicationCommandInteractionDataRoleOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.Role,
@@ -1,11 +1,11 @@
import type {
APIApplicationCommandOptionBase,
APIApplicationCommandBasicOptionBase,
APIApplicationCommandOptionWithAutocompleteOrChoicesWrapper,
APIInteractionDataOptionBase,
} from './base';
import type { APIApplicationCommandOptionChoice, ApplicationCommandOptionType } from './shared';
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandOptionBase<ApplicationCommandOptionType.String> {
export interface APIApplicationCommandStringOptionBase extends APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.String> {
/**
* For option type `STRING`, the minimum allowed length (minimum of `0`, maximum of `6000`).
*/
@@ -1,8 +1,8 @@
import type { Snowflake } from '../../../../../globals';
import type { APIApplicationCommandOptionBase, APIInteractionDataOptionBase } from './base';
import type { APIApplicationCommandBasicOptionBase, APIInteractionDataOptionBase } from './base';
import type { ApplicationCommandOptionType } from './shared';
export type APIApplicationCommandUserOption = APIApplicationCommandOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandUserOption = APIApplicationCommandBasicOptionBase<ApplicationCommandOptionType.User>;
export type APIApplicationCommandInteractionDataUserOption = APIInteractionDataOptionBase<
ApplicationCommandOptionType.User,
+126
View File
@@ -1,10 +1,20 @@
import type {
APIApplicationCommandAttachmentOption,
APIApplicationCommandBasicOption,
APIApplicationCommandBooleanOption,
APIApplicationCommandChannelOption,
APIApplicationCommandIntegerOption,
APIApplicationCommandMentionableOption,
APIApplicationCommandNumberOption,
APIApplicationCommandOption,
APIApplicationCommandRoleOption,
APIApplicationCommandStringOption,
APIApplicationCommandSubcommandGroupOption,
APIApplicationCommandSubcommandOption,
APIApplicationCommandUserOption,
} from '../../v10';
import { ApplicationCommandOptionType } from '../../v10';
import { expectAssignable } from '../__utils__/type-assertions';
const baseValues = {
name: 'test',
@@ -77,3 +87,119 @@ const baseValues = {
autocomplete: true,
};
}
{
const option: APIApplicationCommandAttachmentOption = {
...baseValues,
type: ApplicationCommandOptionType.Attachment,
required: true,
};
}
{
const option: APIApplicationCommandBooleanOption = {
...baseValues,
type: ApplicationCommandOptionType.Boolean,
required: true,
};
}
{
const option: APIApplicationCommandChannelOption = {
...baseValues,
type: ApplicationCommandOptionType.Channel,
required: true,
};
}
{
const option: APIApplicationCommandIntegerOption = {
...baseValues,
type: ApplicationCommandOptionType.Integer,
required: true,
};
}
{
const option: APIApplicationCommandMentionableOption = {
...baseValues,
type: ApplicationCommandOptionType.Mentionable,
required: true,
};
}
{
const option: APIApplicationCommandNumberOption = {
...baseValues,
type: ApplicationCommandOptionType.Number,
required: true,
};
}
{
const option: APIApplicationCommandRoleOption = {
...baseValues,
type: ApplicationCommandOptionType.Role,
required: true,
};
}
{
const option: APIApplicationCommandStringOption = {
...baseValues,
type: ApplicationCommandOptionType.String,
required: true,
};
}
{
const option: APIApplicationCommandUserOption = {
...baseValues,
type: ApplicationCommandOptionType.User,
required: true,
};
}
{
const option: APIApplicationCommandSubcommandOption = {
...baseValues,
type: ApplicationCommandOptionType.Subcommand,
options: [],
// @ts-expect-error - Required is not allowed on subcommands.
required: true,
};
}
{
const option: APIApplicationCommandSubcommandGroupOption = {
...baseValues,
type: ApplicationCommandOptionType.SubcommandGroup,
options: [],
// @ts-expect-error - Required is not allowed on subcommand groups.
required: false,
};
}
{
const option: APIApplicationCommandOption = {
...baseValues,
type: ApplicationCommandOptionType.Subcommand,
// @ts-expect-error - Required is not allowed on subcommands.
required: true,
};
}
{
const option: APIApplicationCommandOption = {
...baseValues,
type: ApplicationCommandOptionType.SubcommandGroup,
// @ts-expect-error - Required is not allowed on subcommand groups.
required: true,
};
}
expectAssignable<keyof APIApplicationCommandBasicOption>('required');
// @ts-expect-error - Required is not valid for subcommands.
expectAssignable<keyof APIApplicationCommandSubcommandOption>('required');
// @ts-expect-error - Required is not valid for subcommand groups.
expectAssignable<keyof APIApplicationCommandSubcommandGroupOption>('required');