UNPKG

n8n-nodes-discord

Version:

nodes to trigger workflows from Discord or send interactive messages. Uses the components API which allows to create dialogs (e.g. attach buttons and wait for the user to click on them)

88 lines 4.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const discord_js_1 = require("discord.js"); const helpers_1 = require("../helpers"); const state_1 = __importDefault(require("../state")); const commands_1 = require("../commands"); async function default_1(ipc, client) { let timeout = null; ipc.server.on('trigger', (data) => { try { (0, helpers_1.addLog)(`trigger ${data.webhookId} update`, client); state_1.default.triggers[data.webhookId] = data; state_1.default.channels = {}; state_1.default.baseUrl = data.baseUrl; const commandsParam = []; Object.keys(state_1.default.triggers).forEach((webhookId) => { const parameters = state_1.default.triggers[webhookId]; if (!parameters.channelIds || !parameters.channelIds.length) parameters.channelIds = ['all']; parameters.channelIds.forEach((channelId) => { if (!state_1.default.channels[channelId] && parameters.active) state_1.default.channels[channelId] = [parameters]; else { if (parameters.active) state_1.default.channels[channelId].push(parameters); else delete state_1.default.channels[channelId]; } }); if (parameters.type === 'command' && parameters.active) commandsParam.push(parameters); }); if (timeout) clearTimeout(timeout); timeout = setTimeout(() => { if (commandsParam.length && data.credentials) { const parsedCommands = []; commandsParam.forEach((params) => { let slashCommand = new discord_js_1.SlashCommandBuilder() .setName(params.name) .setDescription(params.description) .setDMPermission(false); const getOption = (option) => { var _a; return option .setName('input') .setDescription(params.commandFieldDescription) .setRequired((_a = params.commandFieldRequired) !== null && _a !== void 0 ? _a : false); }; if (params.commandFieldType === 'text') { slashCommand = slashCommand.addStringOption((option) => { return getOption(option); }); } else if (params.commandFieldType === 'number') { slashCommand = slashCommand.addNumberOption((option) => { return getOption(option); }); } else if (params.commandFieldType === 'integer') { slashCommand = slashCommand.addIntegerOption((option) => { return getOption(option); }); } else if (params.commandFieldType === 'boolean') { slashCommand = slashCommand.addBooleanOption((option) => { return getOption(option); }); } parsedCommands.push(slashCommand.toJSON()); }); (0, commands_1.registerCommands)(data.credentials.token, data.credentials.clientId, parsedCommands); } else if (data.credentials) { (0, commands_1.registerCommands)(data.credentials.token, data.credentials.clientId, []); } }, 2000); } catch (e) { (0, helpers_1.addLog)(`${e}`, client); } }); } exports.default = default_1; //# sourceMappingURL=trigger.ipc.js.map