mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
types: Export some core-specific types (#10620)
types: export core-specific types Co-Authored-By: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -42,6 +42,14 @@ export interface StartForumThreadOptions extends RESTPostAPIGuildForumThreadsJSO
|
|||||||
message: RESTPostAPIGuildForumThreadsJSONBody['message'] & { files?: RawFile[] };
|
message: RESTPostAPIGuildForumThreadsJSONBody['message'] & { files?: RawFile[] };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface CreateMessageOptions extends RESTPostAPIChannelMessageJSONBody {
|
||||||
|
files?: RawFile[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EditMessageOptions extends RESTPatchAPIChannelMessageJSONBody {
|
||||||
|
files?: RawFile[];
|
||||||
|
}
|
||||||
|
|
||||||
export class ChannelsAPI {
|
export class ChannelsAPI {
|
||||||
public constructor(private readonly rest: REST) {}
|
public constructor(private readonly rest: REST) {}
|
||||||
|
|
||||||
@@ -55,7 +63,7 @@ export class ChannelsAPI {
|
|||||||
*/
|
*/
|
||||||
public async createMessage(
|
public async createMessage(
|
||||||
channelId: Snowflake,
|
channelId: Snowflake,
|
||||||
{ files, ...body }: RESTPostAPIChannelMessageJSONBody & { files?: RawFile[] },
|
{ files, ...body }: CreateMessageOptions,
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
return this.rest.post(Routes.channelMessages(channelId), {
|
return this.rest.post(Routes.channelMessages(channelId), {
|
||||||
@@ -77,7 +85,7 @@ export class ChannelsAPI {
|
|||||||
public async editMessage(
|
public async editMessage(
|
||||||
channelId: Snowflake,
|
channelId: Snowflake,
|
||||||
messageId: Snowflake,
|
messageId: Snowflake,
|
||||||
{ files, ...body }: RESTPatchAPIChannelMessageJSONBody & { files?: RawFile[] },
|
{ files, ...body }: EditMessageOptions,
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
return this.rest.patch(Routes.channelMessage(channelId, messageId), {
|
return this.rest.patch(Routes.channelMessage(channelId, messageId), {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable jsdoc/check-param-names */
|
/* eslint-disable jsdoc/check-param-names */
|
||||||
|
|
||||||
import { makeURLSearchParams, type REST, type RawFile, type RequestData } from '@discordjs/rest';
|
import { makeURLSearchParams, type RawFile, type REST, type RequestData } from '@discordjs/rest';
|
||||||
import {
|
import {
|
||||||
Routes,
|
Routes,
|
||||||
type GuildMFALevel,
|
type GuildMFALevel,
|
||||||
@@ -112,6 +112,10 @@ import {
|
|||||||
} from 'discord-api-types/v10';
|
} from 'discord-api-types/v10';
|
||||||
import { VoiceAPI } from './voice';
|
import { VoiceAPI } from './voice';
|
||||||
|
|
||||||
|
export interface CreateStickerOptions extends Omit<RESTPostAPIGuildStickerFormDataBody, 'file'> {
|
||||||
|
file: RawFile;
|
||||||
|
}
|
||||||
|
|
||||||
export class GuildsAPI {
|
export class GuildsAPI {
|
||||||
public constructor(private readonly rest: REST) {}
|
public constructor(private readonly rest: REST) {}
|
||||||
|
|
||||||
@@ -1018,7 +1022,7 @@ export class GuildsAPI {
|
|||||||
*/
|
*/
|
||||||
public async createSticker(
|
public async createSticker(
|
||||||
guildId: Snowflake,
|
guildId: Snowflake,
|
||||||
{ file, ...body }: Omit<RESTPostAPIGuildStickerFormDataBody, 'file'> & { file: RawFile },
|
{ file, ...body }: CreateStickerOptions,
|
||||||
{ reason, signal }: Pick<RequestData, 'reason' | 'signal'> = {},
|
{ reason, signal }: Pick<RequestData, 'reason' | 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const fileData = { ...file, key: 'file' };
|
const fileData = { ...file, key: 'file' };
|
||||||
|
|||||||
@@ -16,6 +16,26 @@ import {
|
|||||||
} from 'discord-api-types/v10';
|
} from 'discord-api-types/v10';
|
||||||
import type { WebhooksAPI } from './webhook.js';
|
import type { WebhooksAPI } from './webhook.js';
|
||||||
|
|
||||||
|
export interface CreateInteractionResponseOptions
|
||||||
|
extends APIInteractionResponseCallbackData,
|
||||||
|
RESTPostAPIInteractionCallbackQuery {
|
||||||
|
files?: RawFile[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CreateInteractionDeferResponseOptions = APIInteractionResponseDeferredChannelMessageWithSource['data'] &
|
||||||
|
RESTPostAPIInteractionCallbackQuery;
|
||||||
|
|
||||||
|
export type CreateInteractionFollowUpResponseOptions = APIInteractionResponseCallbackData & { files?: RawFile[] };
|
||||||
|
export type EditInteractionResponseOptions = APIInteractionResponseCallbackData & { files?: RawFile[] };
|
||||||
|
|
||||||
|
export type CreateInteractionUpdateMessageResponseOptions = APIInteractionResponseCallbackData &
|
||||||
|
RESTPostAPIInteractionCallbackQuery & { files?: RawFile[] };
|
||||||
|
|
||||||
|
export type CreateAutocompleteResponseOptions = APICommandAutocompleteInteractionResponseCallbackData &
|
||||||
|
RESTPostAPIInteractionCallbackQuery;
|
||||||
|
|
||||||
|
export type CreateModalResponseOptions = APIModalInteractionResponseCallbackData & RESTPostAPIInteractionCallbackQuery;
|
||||||
|
|
||||||
export class InteractionsAPI {
|
export class InteractionsAPI {
|
||||||
public constructor(
|
public constructor(
|
||||||
private readonly rest: REST,
|
private readonly rest: REST,
|
||||||
@@ -34,8 +54,7 @@ export class InteractionsAPI {
|
|||||||
public async reply(
|
public async reply(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
body: APIInteractionResponseCallbackData &
|
body: CreateInteractionResponseOptions & { with_response: true },
|
||||||
RESTPostAPIInteractionCallbackQuery & { files?: RawFile[]; with_response: true },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
@@ -51,19 +70,14 @@ export class InteractionsAPI {
|
|||||||
public async reply(
|
public async reply(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
body: APIInteractionResponseCallbackData &
|
body: CreateInteractionResponseOptions & { with_response?: false },
|
||||||
RESTPostAPIInteractionCallbackQuery & { files?: RawFile[]; with_response?: false },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<undefined>;
|
): Promise<undefined>;
|
||||||
|
|
||||||
public async reply(
|
public async reply(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
{
|
{ files, with_response, ...data }: CreateInteractionResponseOptions,
|
||||||
files,
|
|
||||||
with_response,
|
|
||||||
...data
|
|
||||||
}: APIInteractionResponseCallbackData & RESTPostAPIInteractionCallbackQuery & { files?: RawFile[] },
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
@@ -92,8 +106,7 @@ export class InteractionsAPI {
|
|||||||
public async defer(
|
public async defer(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
body: APIInteractionResponseDeferredChannelMessageWithSource['data'] &
|
body: CreateInteractionDeferResponseOptions & { with_response: true },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response: true },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
@@ -109,18 +122,14 @@ export class InteractionsAPI {
|
|||||||
public async defer(
|
public async defer(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
body?: APIInteractionResponseDeferredChannelMessageWithSource['data'] &
|
body?: CreateInteractionDeferResponseOptions & { with_response?: false },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response?: false },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<undefined>;
|
): Promise<undefined>;
|
||||||
|
|
||||||
public async defer(
|
public async defer(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
{
|
{ with_response, ...data }: CreateInteractionDeferResponseOptions = {},
|
||||||
with_response,
|
|
||||||
...data
|
|
||||||
}: APIInteractionResponseDeferredChannelMessageWithSource['data'] & RESTPostAPIInteractionCallbackQuery = {},
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
@@ -198,7 +207,7 @@ export class InteractionsAPI {
|
|||||||
public async followUp(
|
public async followUp(
|
||||||
applicationId: Snowflake,
|
applicationId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
body: APIInteractionResponseCallbackData & { files?: RawFile[] },
|
body: CreateInteractionFollowUpResponseOptions,
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
return this.webhooks.execute(applicationId, interactionToken, { ...body, wait: true }, { signal });
|
return this.webhooks.execute(applicationId, interactionToken, { ...body, wait: true }, { signal });
|
||||||
@@ -218,7 +227,7 @@ export class InteractionsAPI {
|
|||||||
public async editReply(
|
public async editReply(
|
||||||
applicationId: Snowflake,
|
applicationId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APIInteractionResponseCallbackData & { files?: RawFile[] },
|
callbackData: EditInteractionResponseOptions,
|
||||||
messageId?: Snowflake | '@original',
|
messageId?: Snowflake | '@original',
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
@@ -280,8 +289,7 @@ export class InteractionsAPI {
|
|||||||
public async updateMessage(
|
public async updateMessage(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APIInteractionResponseCallbackData &
|
callbackData: CreateInteractionUpdateMessageResponseOptions & { with_response: true },
|
||||||
RESTPostAPIInteractionCallbackQuery & { files?: RawFile[]; with_response: true },
|
|
||||||
options: Pick<RequestData, 'signal'>,
|
options: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
@@ -297,19 +305,14 @@ export class InteractionsAPI {
|
|||||||
public async updateMessage(
|
public async updateMessage(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APIInteractionResponseCallbackData &
|
callbackData: CreateInteractionUpdateMessageResponseOptions & { with_response?: false },
|
||||||
RESTPostAPIInteractionCallbackQuery & { files?: RawFile[]; with_response?: false },
|
|
||||||
options: Pick<RequestData, 'signal'>,
|
options: Pick<RequestData, 'signal'>,
|
||||||
): Promise<undefined>;
|
): Promise<undefined>;
|
||||||
|
|
||||||
public async updateMessage(
|
public async updateMessage(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
{
|
{ files, with_response, ...data }: CreateInteractionUpdateMessageResponseOptions,
|
||||||
files,
|
|
||||||
with_response,
|
|
||||||
...data
|
|
||||||
}: APIInteractionResponseCallbackData & RESTPostAPIInteractionCallbackQuery & { files?: RawFile[] },
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
@@ -338,8 +341,7 @@ export class InteractionsAPI {
|
|||||||
public async createAutocompleteResponse(
|
public async createAutocompleteResponse(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APICommandAutocompleteInteractionResponseCallbackData &
|
callbackData: CreateAutocompleteResponseOptions & { with_response: true },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response: true },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
@@ -355,18 +357,14 @@ export class InteractionsAPI {
|
|||||||
public async createAutocompleteResponse(
|
public async createAutocompleteResponse(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APICommandAutocompleteInteractionResponseCallbackData &
|
callbackData: CreateAutocompleteResponseOptions & { with_response?: false },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response?: false },
|
|
||||||
options: Pick<RequestData, 'signal'>,
|
options: Pick<RequestData, 'signal'>,
|
||||||
): Promise<undefined>;
|
): Promise<undefined>;
|
||||||
|
|
||||||
public async createAutocompleteResponse(
|
public async createAutocompleteResponse(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
{
|
{ with_response, ...data }: CreateAutocompleteResponseOptions,
|
||||||
with_response,
|
|
||||||
...data
|
|
||||||
}: APICommandAutocompleteInteractionResponseCallbackData & RESTPostAPIInteractionCallbackQuery,
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
@@ -394,8 +392,7 @@ export class InteractionsAPI {
|
|||||||
public async createModal(
|
public async createModal(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APIModalInteractionResponseCallbackData &
|
callbackData: CreateModalResponseOptions & { with_response: true },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response: true },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
): Promise<RESTPostAPIInteractionCallbackWithResponseResult>;
|
||||||
|
|
||||||
@@ -411,15 +408,14 @@ export class InteractionsAPI {
|
|||||||
public async createModal(
|
public async createModal(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
callbackData: APIModalInteractionResponseCallbackData &
|
callbackData: CreateModalResponseOptions & { with_response?: false },
|
||||||
RESTPostAPIInteractionCallbackQuery & { with_response?: false },
|
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<undefined>;
|
): Promise<undefined>;
|
||||||
|
|
||||||
public async createModal(
|
public async createModal(
|
||||||
interactionId: Snowflake,
|
interactionId: Snowflake,
|
||||||
interactionToken: string,
|
interactionToken: string,
|
||||||
{ with_response, ...data }: APIModalInteractionResponseCallbackData & RESTPostAPIInteractionCallbackQuery,
|
{ with_response, ...data }: CreateModalResponseOptions,
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
const response = await this.rest.post(Routes.interactionCallback(interactionId, interactionToken), {
|
||||||
|
|||||||
@@ -19,6 +19,14 @@ import {
|
|||||||
type Snowflake,
|
type Snowflake,
|
||||||
} from 'discord-api-types/v10';
|
} from 'discord-api-types/v10';
|
||||||
|
|
||||||
|
export type CreateWebhookMessageOptions = RESTPostAPIWebhookWithTokenJSONBody &
|
||||||
|
RESTPostAPIWebhookWithTokenQuery & { files?: RawFile[] };
|
||||||
|
|
||||||
|
export type EditWebhookMessageOptions = RESTPatchAPIWebhookWithTokenMessageJSONBody & RESTPatchAPIWebhookWithTokenMessageQuery & {
|
||||||
|
files?: RawFile[];
|
||||||
|
thread_id?: string;
|
||||||
|
};
|
||||||
|
|
||||||
export class WebhooksAPI {
|
export class WebhooksAPI {
|
||||||
public constructor(private readonly rest: REST) {}
|
public constructor(private readonly rest: REST) {}
|
||||||
|
|
||||||
@@ -93,7 +101,7 @@ export class WebhooksAPI {
|
|||||||
public async execute(
|
public async execute(
|
||||||
id: Snowflake,
|
id: Snowflake,
|
||||||
token: string,
|
token: string,
|
||||||
body: RESTPostAPIWebhookWithTokenJSONBody & RESTPostAPIWebhookWithTokenQuery & { files?: RawFile[]; wait: true },
|
body: CreateWebhookMessageOptions & { wait: true },
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<RESTPostAPIWebhookWithTokenWaitResult>;
|
): Promise<RESTPostAPIWebhookWithTokenWaitResult>;
|
||||||
|
|
||||||
@@ -109,7 +117,7 @@ export class WebhooksAPI {
|
|||||||
public async execute(
|
public async execute(
|
||||||
id: Snowflake,
|
id: Snowflake,
|
||||||
token: string,
|
token: string,
|
||||||
body: RESTPostAPIWebhookWithTokenJSONBody & RESTPostAPIWebhookWithTokenQuery & { files?: RawFile[]; wait?: false },
|
body: CreateWebhookMessageOptions & { wait?: false },
|
||||||
options?: Pick<RequestData, 'signal'>,
|
options?: Pick<RequestData, 'signal'>,
|
||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
|
|
||||||
@@ -125,13 +133,7 @@ export class WebhooksAPI {
|
|||||||
public async execute(
|
public async execute(
|
||||||
id: Snowflake,
|
id: Snowflake,
|
||||||
token: string,
|
token: string,
|
||||||
{
|
{ wait, thread_id, with_components, files, ...body }: CreateWebhookMessageOptions,
|
||||||
wait,
|
|
||||||
thread_id,
|
|
||||||
with_components,
|
|
||||||
files,
|
|
||||||
...body
|
|
||||||
}: RESTPostAPIWebhookWithTokenJSONBody & RESTPostAPIWebhookWithTokenQuery & { files?: RawFile[] },
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
return this.rest.post(Routes.webhook(id, token), {
|
return this.rest.post(Routes.webhook(id, token), {
|
||||||
@@ -232,12 +234,7 @@ export class WebhooksAPI {
|
|||||||
id: Snowflake,
|
id: Snowflake,
|
||||||
token: string,
|
token: string,
|
||||||
messageId: Snowflake,
|
messageId: Snowflake,
|
||||||
{
|
{ thread_id, with_components, files, ...body }: EditWebhookMessageOptions,
|
||||||
thread_id,
|
|
||||||
with_components,
|
|
||||||
files,
|
|
||||||
...body
|
|
||||||
}: RESTPatchAPIWebhookWithTokenMessageJSONBody & RESTPatchAPIWebhookWithTokenMessageQuery & { files?: RawFile[] },
|
|
||||||
{ signal }: Pick<RequestData, 'signal'> = {},
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
) {
|
) {
|
||||||
return this.rest.patch(Routes.webhookMessage(id, token, messageId), {
|
return this.rest.patch(Routes.webhookMessage(id, token, messageId), {
|
||||||
|
|||||||
Reference in New Issue
Block a user