UNPKG

jexl-functions-fork

Version:
50 lines (49 loc) 2.42 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createModule = void 0; var validation_1 = require("./validation"); var array_1 = require("./array"); var criteria_1 = require("./criteria"); var coerceUtils_1 = require("./coerceUtils"); var DEFAULT_BASE_CREATE_MODULE_OPTIONS = { defaultMaxTextLength: 10000, defaultMaxArraySize: 200, defaultMaxCriteriaLength: 255, }; function createModule(callback, defaultOptions) { return function (options) { var currentOptions = __assign(__assign(__assign({}, DEFAULT_BASE_CREATE_MODULE_OPTIONS), (defaultOptions || {})), (options || {})); var validateTextLength = (0, validation_1.createValidateTextLengthFunction)(currentOptions.defaultMaxTextLength); var validateArrayMaxSize = (0, validation_1.createValidateArrayMaxSizeFunction)(currentOptions.defaultMaxArraySize); var safeFlatten = (0, array_1.createSaveFlattenFunction)(currentOptions.defaultMaxArraySize); var validateCriteriaMaxLength = (0, validation_1.createValidateTextLengthFunction)(currentOptions.defaultMaxCriteriaLength); var coerceToStringWithValidation = function (text, maxTextLengthOverride) { var coercedValue = (0, coerceUtils_1.coerceToString)(text); validateTextLength(coercedValue, maxTextLengthOverride); return coercedValue; }; return callback({ validateTextLength: validateTextLength, validateArrayMaxSize: validateArrayMaxSize, safeFlatten: safeFlatten, validateCriteriaMaxLength: validateCriteriaMaxLength, coerceToStringWithValidation: coerceToStringWithValidation, evalCriteriaParseResult: criteria_1.evalCriteriaParseResult, parseCriteriaExpression: criteria_1.parseCriteriaExpression, coerceToNumber: coerceUtils_1.coerceToNumber, coerceToString: coerceUtils_1.coerceToString, }, currentOptions); }; } exports.createModule = createModule;