fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
84 lines • 3.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInputGetValue = exports.getInputCustomField = exports.getDispatchActionsConfigurationObject = exports.getFilter = exports.getDateTimeIntegerFromDate = exports.getFormattedDate = exports.getFields = exports.getMarkdownObject = exports.getStringFromNumber = exports.getPlainTextObject = exports.getBuilderResults = exports.getBuilderResult = void 0;
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);
}
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 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;
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;
}
}
exports.getInputCustomField = getInputCustomField;
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;
}
exports.getInputGetValue = getInputGetValue;
//# sourceMappingURL=build-helpers.js.map