UNPKG

@digifi/jexl-functions

Version:
40 lines (39 loc) 2.03 kB
"use strict"; 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;