UNPKG

dressed

Version:

A sleek, serverless-ready Discord bot framework.

126 lines 4.91 kB
import { InteractionResponseType, MessageFlags, Routes, } from "discord-api-types/v10"; import { callDiscord } from "../../utils/call-discord.js"; import { botEnv } from "../../utils/env.js"; export const baseInteractionMethods = (interaction) => { var _a, _b; return ({ async reply(data) { var _a; if (typeof data === "string") { data = { content: data }; } if (data.ephemeral) { const flags = ((_a = data.flags) !== null && _a !== void 0 ? _a : 0) | MessageFlags.Ephemeral; data.flags = flags; } const files = data.files; delete data.files; const res = await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.ChannelMessageWithSource, data, }, params: data.with_response ? { with_response: data.with_response, } : undefined, files, }); return data.with_response ? res.json() : null; }, async deferReply(data) { var _a; if (data === null || data === void 0 ? void 0 : data.ephemeral) { const flags = ((_a = data.flags) !== null && _a !== void 0 ? _a : 0) | MessageFlags.Ephemeral; data.flags = flags; } const res = await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.DeferredChannelMessageWithSource, data, }, params: (data === null || data === void 0 ? void 0 : data.with_response) ? { with_response: data.with_response, } : undefined, }); return (data === null || data === void 0 ? void 0 : data.with_response) ? res.json() : null; }, async update(data) { if (typeof data === "string") { data = { content: data }; } const files = data.files; delete data.files; await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.UpdateMessage, data, }, files, }); }, async deferUpdate() { await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.DeferredMessageUpdate, }, }); }, async editReply(data) { if (typeof data === "string") { data = { content: data }; } const files = data.files; delete data.files; await callDiscord(Routes.webhookMessage(botEnv.DISCORD_APP_ID, interaction.token), { method: "PATCH", body: data, files, }); }, async followUp(data) { var _a; if (typeof data === "string") { data = { content: data }; } if (data.ephemeral) { const flags = ((_a = data.flags) !== null && _a !== void 0 ? _a : 0) | MessageFlags.Ephemeral; data.flags = flags; } const files = data.files; delete data.files; await callDiscord(Routes.webhook(botEnv.DISCORD_APP_ID, interaction.token), { method: "POST", body: data, files, }); }, async showModal(data) { await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.Modal, data, }, }); }, async sendChoices(choices) { await callDiscord(Routes.interactionCallback(interaction.id, interaction.token), { method: "POST", body: { type: InteractionResponseType.ApplicationCommandAutocompleteResult, data: { choices }, }, }); }, user: (_b = (_a = interaction.member) === null || _a === void 0 ? void 0 : _a.user) !== null && _b !== void 0 ? _b : interaction.user, }); }; //# sourceMappingURL=responses.js.map