fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
83 lines • 3.37 kB
JavaScript
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
;