mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 02:23:31 +01:00
feat(*): enforce strings (#4880)
BREAKING CHANGE: Removes all Resolvables for only string inputs Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
This commit is contained in:
92
typings/index.d.ts
vendored
92
typings/index.d.ts
vendored
@@ -129,13 +129,13 @@ declare module 'discord.js' {
|
||||
|
||||
public static create(
|
||||
target: MessageTarget,
|
||||
content: APIMessageContentResolvable,
|
||||
content: string | null,
|
||||
options?: undefined,
|
||||
extra?: MessageOptions | WebhookMessageOptions,
|
||||
): APIMessage;
|
||||
public static create(
|
||||
target: MessageTarget,
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: MessageOptions | WebhookMessageOptions | MessageAdditions,
|
||||
extra?: MessageOptions | WebhookMessageOptions,
|
||||
): APIMessage;
|
||||
@@ -144,13 +144,13 @@ declare module 'discord.js' {
|
||||
): [MessageEmbed[], MessageAttachment[]];
|
||||
public static resolveFile(fileLike: BufferResolvable | Stream | FileOptions | MessageAttachment): Promise<unknown>;
|
||||
public static transformOptions(
|
||||
content: APIMessageContentResolvable,
|
||||
content: string | null,
|
||||
options?: undefined,
|
||||
extra?: MessageOptions | WebhookMessageOptions,
|
||||
isWebhook?: boolean,
|
||||
): MessageOptions | WebhookMessageOptions;
|
||||
public static transformOptions(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: MessageOptions | WebhookMessageOptions | MessageAdditions,
|
||||
extra?: MessageOptions | WebhookMessageOptions,
|
||||
isWebhook?: boolean,
|
||||
@@ -448,16 +448,16 @@ declare module 'discord.js' {
|
||||
public defer(options?: InteractionDeferOptions): Promise<void>;
|
||||
public deleteReply(): Promise<void>;
|
||||
public editReply(
|
||||
content: string | APIMessage | WebhookEditMessageOptions | MessageAdditions,
|
||||
content: string | null | APIMessage | WebhookEditMessageOptions | MessageAdditions,
|
||||
): Promise<Message | RawMessage>;
|
||||
public editReply(content: string, options?: WebhookEditMessageOptions): Promise<Message | RawMessage>;
|
||||
public editReply(content: string | null, options?: WebhookEditMessageOptions): Promise<Message | RawMessage>;
|
||||
public fetchReply(): Promise<Message | RawMessage>;
|
||||
public followUp(
|
||||
content: string | APIMessage | InteractionReplyOptions | MessageAdditions,
|
||||
): Promise<Message | RawMessage>;
|
||||
public followUp(content: string, options?: InteractionReplyOptions): Promise<Message | RawMessage>;
|
||||
public reply(content: string | APIMessage | InteractionReplyOptions | MessageAdditions): Promise<void>;
|
||||
public reply(content: string, options?: InteractionReplyOptions): Promise<void>;
|
||||
public followUp(content: string | null, options?: InteractionReplyOptions): Promise<Message | RawMessage>;
|
||||
public reply(content: string | null | APIMessage | InteractionReplyOptions | MessageAdditions): Promise<void>;
|
||||
public reply(content: string | null, options?: InteractionReplyOptions): Promise<void>;
|
||||
private transformOption(option: unknown, resolved: unknown): CommandInteractionOption;
|
||||
}
|
||||
|
||||
@@ -1185,9 +1185,9 @@ declare module 'discord.js' {
|
||||
): ReactionCollector;
|
||||
public delete(): Promise<Message>;
|
||||
public edit(
|
||||
content: APIMessageContentResolvable | MessageEditOptions | MessageEmbed | APIMessage,
|
||||
content: string | null | MessageEditOptions | MessageEmbed | APIMessage,
|
||||
): Promise<Message>;
|
||||
public edit(content: StringResolvable, options: MessageEditOptions | MessageEmbed): Promise<Message>;
|
||||
public edit(content: string | null, options: MessageEditOptions | MessageEmbed): Promise<Message>;
|
||||
public equals(message: Message, rawData: unknown): boolean;
|
||||
public fetchReference(): Promise<Message>;
|
||||
public fetchWebhook(): Promise<Webhook>;
|
||||
@@ -1197,19 +1197,19 @@ declare module 'discord.js' {
|
||||
public react(emoji: EmojiIdentifierResolvable): Promise<MessageReaction>;
|
||||
public removeAttachments(): Promise<Message>;
|
||||
public reply(
|
||||
content: APIMessageContentResolvable | (ReplyMessageOptions & { split?: false }) | MessageAdditions,
|
||||
content: string | null | (ReplyMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<Message>;
|
||||
public reply(options: ReplyMessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
|
||||
public reply(options: ReplyMessageOptions | APIMessage): Promise<Message | Message[]>;
|
||||
public reply(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: (ReplyMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<Message>;
|
||||
public reply(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: ReplyMessageOptions & { split: true | SplitOptions },
|
||||
): Promise<Message[]>;
|
||||
public reply(content: StringResolvable, options: ReplyMessageOptions): Promise<Message | Message[]>;
|
||||
public reply(content: string | null, options: ReplyMessageOptions): Promise<Message | Message[]>;
|
||||
public suppressEmbeds(suppress?: boolean): Promise<Message>;
|
||||
public toJSON(): unknown;
|
||||
public toString(): string;
|
||||
@@ -1271,26 +1271,22 @@ declare module 'discord.js' {
|
||||
public type: string;
|
||||
public url: string | null;
|
||||
public readonly video: MessageEmbedVideo | null;
|
||||
public addField(name: StringResolvable, value: StringResolvable, inline?: boolean): this;
|
||||
public addField(name: string, value: string, inline?: boolean): this;
|
||||
public addFields(...fields: EmbedFieldData[] | EmbedFieldData[][]): this;
|
||||
public attachFiles(file: (MessageAttachment | FileOptions | string)[]): this;
|
||||
public setAuthor(name: StringResolvable, iconURL?: string, url?: string): this;
|
||||
public setAuthor(name: string, iconURL?: string, url?: string): this;
|
||||
public setColor(color: ColorResolvable): this;
|
||||
public setDescription(description: StringResolvable): this;
|
||||
public setFooter(text: StringResolvable, iconURL?: string): this;
|
||||
public setDescription(description: string): this;
|
||||
public setFooter(text: string, iconURL?: string): this;
|
||||
public setImage(url: string): this;
|
||||
public setThumbnail(url: string): this;
|
||||
public setTimestamp(timestamp?: Date | number): this;
|
||||
public setTitle(title: StringResolvable): this;
|
||||
public setTitle(title: string): this;
|
||||
public setURL(url: string): this;
|
||||
public spliceFields(index: number, deleteCount: number, ...fields: EmbedFieldData[] | EmbedFieldData[][]): this;
|
||||
public toJSON(): unknown;
|
||||
|
||||
public static normalizeField(
|
||||
name: StringResolvable,
|
||||
value: StringResolvable,
|
||||
inline?: boolean,
|
||||
): Required<EmbedFieldData>;
|
||||
public static normalizeField(name: string, value: string, inline?: boolean): Required<EmbedFieldData>;
|
||||
public static normalizeFields(...fields: EmbedFieldData[] | EmbedFieldData[][]): Required<EmbedFieldData>[];
|
||||
}
|
||||
|
||||
@@ -1785,7 +1781,7 @@ declare module 'discord.js' {
|
||||
public static moveElementInArray(array: any[], element: any, newIndex: number, offset?: boolean): number;
|
||||
public static parseEmoji(text: string): { animated: boolean; name: string; id: string | null } | null;
|
||||
public static resolveColor(color: ColorResolvable): number;
|
||||
public static resolveString(data: StringResolvable): string;
|
||||
public static verifyString(data: string, error?: typeof Error, errorMessage?: string, allowEmpty?: boolean): string;
|
||||
public static setPosition<T extends Channel | Role>(
|
||||
item: T,
|
||||
position: number,
|
||||
@@ -1794,7 +1790,7 @@ declare module 'discord.js' {
|
||||
route: unknown,
|
||||
reason?: string,
|
||||
): Promise<{ id: Snowflake; position: number }[]>;
|
||||
public static splitMessage(text: StringResolvable, options?: SplitOptions): string[];
|
||||
public static splitMessage(text: string, options?: SplitOptions): string[];
|
||||
}
|
||||
|
||||
class VoiceBroadcast extends EventEmitter {
|
||||
@@ -1970,25 +1966,25 @@ declare module 'discord.js' {
|
||||
public token: string;
|
||||
public editMessage(
|
||||
message: MessageResolvable,
|
||||
content: APIMessageContentResolvable | APIMessage | MessageEmbed | MessageEmbed[],
|
||||
content: string | null | APIMessage | MessageEmbed | MessageEmbed[],
|
||||
options?: WebhookEditMessageOptions,
|
||||
): Promise<RawMessage>;
|
||||
public editMessage(message: MessageResolvable, options: WebhookEditMessageOptions): Promise<RawMessage>;
|
||||
public fetchMessage(message: Snowflake, cache?: boolean): Promise<RawMessage>;
|
||||
public send(
|
||||
content: APIMessageContentResolvable | (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
content: string | (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<RawMessage>;
|
||||
public send(options: WebhookMessageOptions & { split: true | SplitOptions }): Promise<RawMessage[]>;
|
||||
public send(options: WebhookMessageOptions | APIMessage): Promise<RawMessage | RawMessage[]>;
|
||||
public send(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<RawMessage>;
|
||||
public send(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: WebhookMessageOptions & { split: true | SplitOptions },
|
||||
): Promise<RawMessage[]>;
|
||||
public send(content: StringResolvable, options: WebhookMessageOptions): Promise<RawMessage | RawMessage[]>;
|
||||
public send(content: string | null, options: WebhookMessageOptions): Promise<RawMessage | RawMessage[]>;
|
||||
}
|
||||
|
||||
export class WebSocketManager extends EventEmitter {
|
||||
@@ -2325,14 +2321,12 @@ declare module 'discord.js' {
|
||||
interface PartialTextBasedChannelFields {
|
||||
lastMessageID: Snowflake | null;
|
||||
readonly lastMessage: Message | null;
|
||||
send(
|
||||
content: APIMessageContentResolvable | (MessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<Message>;
|
||||
send(content: string | (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>;
|
||||
send(options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
|
||||
send(options: MessageOptions | APIMessage): Promise<Message | Message[]>;
|
||||
send(content: StringResolvable, options: (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>;
|
||||
send(content: StringResolvable, options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
|
||||
send(content: StringResolvable, options: MessageOptions): Promise<Message | Message[]>;
|
||||
send(content: string | null, options: (MessageOptions & { split?: false }) | MessageAdditions): Promise<Message>;
|
||||
send(content: string | null, options: MessageOptions & { split: true | SplitOptions }): Promise<Message[]>;
|
||||
send(content: string | null, options: MessageOptions): Promise<Message | Message[]>;
|
||||
}
|
||||
|
||||
interface TextBasedChannelFields extends PartialTextBasedChannelFields {
|
||||
@@ -2368,7 +2362,7 @@ declare module 'discord.js' {
|
||||
edit(options: WebhookEditData): Promise<Webhook>;
|
||||
editMessage(
|
||||
message: MessageResolvable | '@original',
|
||||
content: APIMessageContentResolvable | APIMessage | MessageAdditions,
|
||||
content: string | null | APIMessage | MessageAdditions,
|
||||
options?: WebhookEditMessageOptions,
|
||||
): Promise<Message | RawMessage>;
|
||||
editMessage(
|
||||
@@ -2377,20 +2371,20 @@ declare module 'discord.js' {
|
||||
): Promise<Message | RawMessage>;
|
||||
fetchMessage(message: Snowflake | '@original', cache?: boolean): Promise<Message | RawMessage>;
|
||||
send(
|
||||
content: APIMessageContentResolvable | (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
content: string | (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<Message | RawMessage>;
|
||||
send(options: WebhookMessageOptions & { split: true | SplitOptions }): Promise<(Message | RawMessage)[]>;
|
||||
send(options: WebhookMessageOptions | APIMessage): Promise<Message | RawMessage | (Message | RawMessage)[]>;
|
||||
send(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: (WebhookMessageOptions & { split?: false }) | MessageAdditions,
|
||||
): Promise<Message | RawMessage>;
|
||||
send(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: WebhookMessageOptions & { split: true | SplitOptions },
|
||||
): Promise<(Message | RawMessage)[]>;
|
||||
send(
|
||||
content: StringResolvable,
|
||||
content: string | null,
|
||||
options: WebhookMessageOptions,
|
||||
): Promise<Message | RawMessage | (Message | RawMessage)[]>;
|
||||
sendSlackMessage(body: unknown): Promise<boolean>;
|
||||
@@ -2491,8 +2485,6 @@ declare module 'discord.js' {
|
||||
RESOURCE_OVERLOADED: 130000;
|
||||
}
|
||||
|
||||
type APIMessageContentResolvable = string | number | boolean | bigint | symbol | readonly StringResolvable[];
|
||||
|
||||
interface ApplicationAsset {
|
||||
name: string;
|
||||
id: Snowflake;
|
||||
@@ -2801,8 +2793,8 @@ declare module 'discord.js' {
|
||||
}
|
||||
|
||||
interface EmbedFieldData {
|
||||
name: StringResolvable;
|
||||
value: StringResolvable;
|
||||
name: string;
|
||||
value: string;
|
||||
inline?: boolean;
|
||||
}
|
||||
|
||||
@@ -3207,7 +3199,7 @@ declare module 'discord.js' {
|
||||
|
||||
interface MessageEditOptions {
|
||||
attachments?: MessageAttachment[];
|
||||
content?: StringResolvable;
|
||||
content?: string;
|
||||
embed?: MessageEmbed | MessageEmbedOptions | null;
|
||||
code?: string | boolean;
|
||||
files?: (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
|
||||
@@ -3303,7 +3295,7 @@ declare module 'discord.js' {
|
||||
interface MessageOptions {
|
||||
tts?: boolean;
|
||||
nonce?: string | number;
|
||||
content?: StringResolvable;
|
||||
content?: string;
|
||||
embed?: MessageEmbed | MessageEmbedOptions;
|
||||
allowedMentions?: MessageMentionOptions;
|
||||
files?: (FileOptions | BufferResolvable | Stream | MessageAttachment)[];
|
||||
@@ -3652,8 +3644,6 @@ declare module 'discord.js' {
|
||||
|
||||
type StreamType = 'unknown' | 'converted' | 'opus' | 'ogg/opus' | 'webm/opus';
|
||||
|
||||
type StringResolvable = string | string[] | any;
|
||||
|
||||
type SystemChannelFlagsString =
|
||||
| 'SUPPRESS_JOIN_NOTIFICATIONS'
|
||||
| 'SUPPRESS_PREMIUM_SUBSCRIPTIONS'
|
||||
|
||||
@@ -35,7 +35,6 @@ client.on('message', ({ channel }) => {
|
||||
assertIsMessage(channel.send('string'));
|
||||
assertIsMessage(channel.send({}));
|
||||
assertIsMessage(channel.send({ embed: {} }));
|
||||
assertIsMessage(channel.send({ another: 'property' }, {}));
|
||||
|
||||
const attachment = new MessageAttachment('file.png');
|
||||
const embed = new MessageEmbed();
|
||||
@@ -43,7 +42,6 @@ client.on('message', ({ channel }) => {
|
||||
assertIsMessage(channel.send(embed));
|
||||
assertIsMessage(channel.send([attachment, embed]));
|
||||
|
||||
assertIsMessageArray(channel.send(Symbol('another primitive'), { split: true }));
|
||||
assertIsMessageArray(channel.send({ split: true }));
|
||||
|
||||
// @ts-expect-error
|
||||
|
||||
Reference in New Issue
Block a user