detritus-client
Version:
A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.
37 lines (36 loc) • 1.55 kB
JavaScript
;
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;