UNPKG

jexl-functions-fork

Version:
25 lines (24 loc) 1.19 kB
"use strict"; 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;