UNPKG

@shgysk8zer0/slack

Version:

An npm package for sending messages in Slack

47 lines (35 loc) 1.05 kB
'use strict'; var block = require('./block.cjs'); var interactive = require('../element/interactive.cjs'); var functions = require('../functions.cjs'); class SlackActionsBlock extends block.SlackBlock { #elements = []; constructor({ elements = [], id } = {}) { super({ id }); if (! Array.isArray(elements)) { throw new TypeError('elements must be an array.'); } else if (elements.length !== 0) { this.add(...elements); } } add(...elements) { const before = this.#elements.length; const count = this.#elements.push(...elements.filter(el => el instanceof interactive.SlackInteractiveElement)); if (count - before !== elements.length) { throw new Error('Error adding some elements.'); } return this; } toJSON() { return { ...super.toJSON(), elements: this.#elements, }; } static get TYPE() { return 'actions'; } } const createSlackActionsBlock = functions.createFactory(SlackActionsBlock); exports.SlackActionsBlock = SlackActionsBlock; exports.createSlackActionsBlock = createSlackActionsBlock;