jexl-functions-fork
Version:
Package with available JEXL functions
50 lines (49 loc) • 2.42 kB
JavaScript
;
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;