UNPKG

fox-block-builder

Version:

Maintainable code for loop slack-block-kit-like modal builder

83 lines 3.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBuilderResult = getBuilderResult; exports.getBuilderResults = getBuilderResults; exports.getPlainTextObject = getPlainTextObject; exports.getStringFromNumber = getStringFromNumber; exports.getMarkdownObject = getMarkdownObject; exports.getFields = getFields; exports.getFormattedDate = getFormattedDate; exports.getDateTimeIntegerFromDate = getDateTimeIntegerFromDate; exports.getFilter = getFilter; exports.getDispatchActionsConfigurationObject = getDispatchActionsConfigurationObject; exports.getInputCustomField = getInputCustomField; exports.getInputGetValue = getInputGetValue; const objects_1 = require("../objects"); const directory_1 = require("../../directory"); 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); } function getBuilderResults(builders, params = defaultParams) { return (valueOrUndefined(builders) && builders.map((builder) => getBuilderResult(builder, params))); } function getPlainTextObject(text) { return valueOrUndefined(text) ? new objects_1.PlainTextObject(text) : undefined; } function getStringFromNumber(value) { return valueOrUndefined(value) ? value.toString() : undefined; } function getMarkdownObject(text) { return valueOrUndefined(text) ? new objects_1.MarkdownObject(text) : undefined; } function getFields(fields) { return (valueOrUndefined(fields) && fields.map((field) => new objects_1.MarkdownObject(field))); } function getFormattedDate(date) { return valueOrUndefined(date) && date.toISOString().split('T')[0]; } function getDateTimeIntegerFromDate(date) { return valueOrUndefined(date) && Math.floor(date.getTime() / 1000); } function getFilter({ filter, excludeBotUsers, excludeExternalSharedChannels, }) { return (valuesOrUndefined([ filter, excludeBotUsers, excludeExternalSharedChannels, ]) && new objects_1.FilterObject({ filter, excludeBotUsers, excludeExternalSharedChannels })); } function getDispatchActionsConfigurationObject({ onEnterPressed, onCharacterEntered, }) { return (valuesOrUndefined([onEnterPressed, onCharacterEntered]) && new objects_1.DispatchActionsConfigurationObject([onEnterPressed, onCharacterEntered].filter(Boolean))); } function getInputCustomField({ customField, element, }) { if ('directory' in element.props && element.props.directory.name) { if (customField !== false && directory_1.DirectoryFieldId[element.props.directory.name]) { return Number(directory_1.DirectoryFieldId[element.props.directory.name]); } } else { return customField; } } function getInputGetValue({ element, getValue, }) { if (typeof getValue === 'boolean') return getValue; if ('directory' in element.props && element.props.directory.name) { return !!directory_1.DirectoryFieldId[element.props.directory.name]; } return false; } //# sourceMappingURL=build-helpers.js.map