UNPKG

dressed

Version:

A sleek, serverless-ready Discord bot framework.

57 lines 2.15 kB
import { baseInteractionMethods } from "./responses.js"; import { InteractionType } from "discord-api-types/v10"; import { getOption } from "./options.js"; export function createInteraction(interaction) { if (!interaction.user && interaction.member) { interaction.user = interaction.member.user; } switch (interaction.type) { case InteractionType.ApplicationCommand: { return { ...interaction, ...baseInteractionMethods(interaction), getOption: (name, required) => { var _a; return getOption(name, required, "options" in interaction.data ? ((_a = interaction.data.options) !== null && _a !== void 0 ? _a : []) : [], interaction.data .resolved); }, }; } case InteractionType.ApplicationCommandAutocomplete: { return { ...interaction, ...baseInteractionMethods(interaction), getOption: (name) => getOption(name, false, interaction.data.options, interaction.data.resolved), }; } case InteractionType.MessageComponent: { return { ...interaction, ...baseInteractionMethods(interaction), }; } case InteractionType.ModalSubmit: { return { ...interaction, ...baseInteractionMethods(interaction), getField(custom_id, required) { const field = interaction.data.components .flatMap((c) => c.components) .find((c) => c.custom_id === custom_id); if (!field) { if (required) throw new Error(`Field "${custom_id}" not found`); return; } return field.value; }, }; } default: { return null; } } } //# sourceMappingURL=interaction.js.map