UNPKG

detritus-client

Version:

A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.

37 lines (36 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentActionBase = void 0; const detritus_utils_1 = require("detritus-utils"); const baseset_1 = require("../../collections/baseset"); const constants_1 = require("../../constants"); const basestructure_1 = require("../../structures/basestructure"); const emoji_1 = require("../../structures/emoji"); const keysComponentActionBase = new baseset_1.BaseSet([ constants_1.DiscordKeys.CUSTOM_ID, constants_1.DiscordKeys.TYPE, ]); class ComponentActionBase extends basestructure_1.Structure { constructor(data = {}) { super(); this._keys = keysComponentActionBase; this.type = constants_1.MessageComponentTypes.BUTTON; if (constants_1.DetritusKeys[constants_1.DiscordKeys.CUSTOM_ID] in data) { data[constants_1.DiscordKeys.CUSTOM_ID] = data[constants_1.DetritusKeys[constants_1.DiscordKeys.CUSTOM_ID]]; } this.run = data.run || this.run; this.onError = data.onError || this.onError; if (!data[constants_1.DiscordKeys.CUSTOM_ID] && !this.customId) { data[constants_1.DiscordKeys.CUSTOM_ID] = detritus_utils_1.Snowflake.generate().id; } this.merge(data); } toJSON() { const data = super.toJSON(); if (data.emoji instanceof emoji_1.Emoji) { data.emoji = { animated: data.emoji.animated, id: data.emoji.id, name: data.emoji.name }; } return data; } } exports.ComponentActionBase = ComponentActionBase;