jexl-functions-fork
Version:
Package with available JEXL functions
25 lines (24 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSaveFlattenFunction = void 0;
var jexl_1 = require("@digifi/jexl");
var validation_1 = require("./validation");
var createSaveFlattenFunction = function (maxFlattenArraySize) {
var validateArrayMaxSize = (0, validation_1.createValidateArrayMaxSizeFunction)(maxFlattenArraySize);
return function (args) {
validateArrayMaxSize(args);
return args.reduce(function (flattenArray, arg) {
var currentFlattenArrayLength = flattenArray.length;
var argArrayLength = Array.isArray(arg) ? arg.length : 1;
if (currentFlattenArrayLength + argArrayLength > maxFlattenArraySize) {
throw new jexl_1.ExecutionError("Items size exceeded. Provided ".concat(currentFlattenArrayLength + argArrayLength, ", maximum ").concat(maxFlattenArraySize));
}
if (Array.isArray(arg)) {
return arg.length ? flattenArray.concat(arg) : flattenArray;
}
flattenArray.push(arg);
return flattenArray;
}, []);
};
};
exports.createSaveFlattenFunction = createSaveFlattenFunction;