UNPKG

@shgysk8zer0/slack

Version:

An npm package for sending messages in Slack

46 lines (35 loc) 1.1 kB
'use strict'; var block = require('./block.cjs'); var text = require('../element/text.cjs'); var image = require('./image.cjs'); var functions = require('../functions.cjs'); class SlackContextBlock 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 text.SlackTextElement || el instanceof image.SlackImageBlock)); 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 'context'; } } const createSlackContextBlock = functions.createFactory(SlackContextBlock); exports.SlackContextBlock = SlackContextBlock; exports.createSlackContextBlock = createSlackContextBlock;