UNPKG

slack-block-builder

Version:

Maintainable code for interactive Slack messages, modals, home tabs, and workflow steps. A must-have for the Slack Block Kit framework.

65 lines (64 loc) 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDispatchActionsConfigurationObject = exports.getFilter = exports.getDateTimeIntegerFromDate = exports.getFormattedDate = exports.getFields = exports.getElementsForContext = exports.getMarkdownObject = exports.getStringFromNumber = exports.getPlainTextObject = exports.getBuilderResults = exports.getBuilderResult = void 0; const objects_1 = require("../objects"); const defaultParams = { isMarkdown: false, }; const valueOrUndefined = (value) => (value === undefined ? undefined : value); const valuesOrUndefined = (values) => { if (values.filter((value) => value !== undefined).length === 0) { return undefined; } return values; }; function getBuilderResult(builder, params = defaultParams) { return valueOrUndefined(builder) && builder.build(params); } exports.getBuilderResult = getBuilderResult; function getBuilderResults(builders, params = defaultParams) { return valueOrUndefined(builders) && builders .map((builder) => getBuilderResult(builder, params)); } exports.getBuilderResults = getBuilderResults; function getPlainTextObject(text) { return valueOrUndefined(text) ? new objects_1.PlainTextObject(text) : undefined; } exports.getPlainTextObject = getPlainTextObject; function getStringFromNumber(value) { return valueOrUndefined(value) ? value.toString() : undefined; } exports.getStringFromNumber = getStringFromNumber; function getMarkdownObject(text) { return valueOrUndefined(text) ? new objects_1.MarkdownObject(text) : undefined; } exports.getMarkdownObject = getMarkdownObject; function getElementsForContext(elements) { return valueOrUndefined(elements) && elements.map((element) => (typeof element === 'string' ? new objects_1.MarkdownObject(element) : element.build())); } exports.getElementsForContext = getElementsForContext; function getFields(fields) { return valueOrUndefined(fields) && fields.map((field) => new objects_1.MarkdownObject(field)); } exports.getFields = getFields; function getFormattedDate(date) { return valueOrUndefined(date) && date.toISOString().split('T')[0]; } exports.getFormattedDate = getFormattedDate; function getDateTimeIntegerFromDate(date) { return valueOrUndefined(date) && Math.floor(date.getTime() / 1000); } exports.getDateTimeIntegerFromDate = getDateTimeIntegerFromDate; function getFilter({ filter, excludeBotUsers, excludeExternalSharedChannels }) { return valuesOrUndefined([filter, excludeBotUsers, excludeExternalSharedChannels]) && new objects_1.FilterObject({ filter, excludeBotUsers, excludeExternalSharedChannels }); } exports.getFilter = getFilter; function getDispatchActionsConfigurationObject({ onEnterPressed, onCharacterEntered }) { return valuesOrUndefined([onEnterPressed, onCharacterEntered]) && new objects_1.DispatchActionsConfigurationObject([onEnterPressed, onCharacterEntered] .filter(Boolean)); } exports.getDispatchActionsConfigurationObject = getDispatchActionsConfigurationObject;