@digifi/jexl-functions
Version:
Package with available JEXL functions
40 lines (39 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createModule = void 0;
const validation_1 = require("./validation");
const array_1 = require("./array");
const criteria_1 = require("./criteria");
const coerceUtils_1 = require("./coerceUtils");
const DEFAULT_BASE_CREATE_MODULE_OPTIONS = {
defaultMaxTextLength: 10000,
defaultMaxArraySize: 200,
defaultMaxCriteriaLength: 255,
};
function createModule(callback, defaultOptions) {
return (options) => {
const currentOptions = Object.assign(Object.assign(Object.assign({}, DEFAULT_BASE_CREATE_MODULE_OPTIONS), (defaultOptions || {})), (options || {}));
const validateTextLength = (0, validation_1.createValidateTextLengthFunction)(currentOptions.defaultMaxTextLength);
const validateArrayLikeValueMaxSize = (0, validation_1.createValidateArrayLikeValueMaxSizeFunction)(currentOptions.defaultMaxArraySize);
const safeFlatten = (0, array_1.createSaveFlattenFunction)(currentOptions.defaultMaxArraySize);
const validateCriteria = (0, validation_1.createValidateCriteria)(currentOptions.defaultMaxCriteriaLength);
const coerceToStringWithValidation = (text, maxTextLengthOverride) => {
const coercedValue = (0, coerceUtils_1.coerceToString)(text);
validateTextLength(coercedValue, maxTextLengthOverride);
return coercedValue;
};
return callback({
validateTextLength,
validateArrayLikeValueMaxSize,
safeFlatten,
validateCriteria,
coerceToStringWithValidation,
evalCriteriaParseResult: criteria_1.evalCriteriaParseResult,
parseCriteriaExpression: criteria_1.parseCriteriaExpression,
coerceToNumber: coerceUtils_1.coerceToNumber,
coerceToString: coerceUtils_1.coerceToString,
coerceNullishValueToArray: coerceUtils_1.coerceNullishValueToArray,
}, currentOptions);
};
}
exports.createModule = createModule;