UNPKG

expression-evaluation

Version:
32 lines (31 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.funcRandomString = exports.funcRandomBuffer = exports.funcRandomInteger = exports.funcRandomNumber = exports.funcNow = exports.funcMerge = exports.funcChain = exports.funcRange = exports.funcMax = exports.funcMin = exports.funcSum = exports.funcNot = exports.funcAnd = exports.funcOr = void 0; const FunctionDefinition_js_1 = require("../FunctionDefinition.js"); const Type_js_1 = require("../Type.js"); exports.funcOr = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX).some((v) => v), Type_js_1.typeBoolean, [Type_js_1.typeBooleanOrArray], 2, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcAnd = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX).every((v) => v), Type_js_1.typeBoolean, [Type_js_1.typeBooleanOrArray], 2, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcNot = new FunctionDefinition_js_1.FunctionDefinition((value) => !value, Type_js_1.typeBoolean, [Type_js_1.typeBoolean]); exports.funcSum = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX).reduce((acc, val) => acc + val, 0), Type_js_1.typeNumber, [Type_js_1.typeNumberOrArray], 1, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcMin = new FunctionDefinition_js_1.FunctionDefinition((...values) => Math.min(Number.POSITIVE_INFINITY, ...values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX)), Type_js_1.typeNumber, [Type_js_1.typeNumberOrArray], 1, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcMax = new FunctionDefinition_js_1.FunctionDefinition((...values) => Math.max(Number.NEGATIVE_INFINITY, ...values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX)), Type_js_1.typeNumber, [Type_js_1.typeNumberOrArray], 1, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcRange = new FunctionDefinition_js_1.FunctionDefinition((value1, value2) => { const [min, max] = [Math.floor(Math.min(value1, value2)), Math.ceil(Math.max(value1, value2))]; return [...Array(max - min).keys()].map((i) => i + min); }, Type_js_1.typeArray, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcChain = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX).reduce((acc, val) => [...acc, val], []), Type_js_1.typeArray, [Type_js_1.typeArray], 1, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcMerge = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.flat(FunctionDefinition_js_1.FUNCTION_ARG_MAX).reduce((acc, val) => Object.assign(acc, val), {}), Type_js_1.typeObject, [Type_js_1.typeArrayOrObject], 1, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcNow = new FunctionDefinition_js_1.FunctionDefinition(() => new Date().getTime(), Type_js_1.typeNumber, [], undefined, undefined, undefined, false); exports.funcRandomNumber = new FunctionDefinition_js_1.FunctionDefinition((value) => value == null ? undefined : Math.random() * value, Type_js_1.typeNumber, [Type_js_1.typeNumber], undefined, undefined, undefined, false); exports.funcRandomInteger = new FunctionDefinition_js_1.FunctionDefinition((value) => value == null ? undefined : Math.floor(Math.random() * value), Type_js_1.typeNumber, [Type_js_1.typeNumber], undefined, undefined, undefined, false); exports.funcRandomBuffer = new FunctionDefinition_js_1.FunctionDefinition((value) => value == null || value < 0 ? undefined : crypto.getRandomValues(new Uint8Array(value)), Type_js_1.typeBuffer, [Type_js_1.typeNumber], undefined, undefined, undefined, false); exports.funcRandomString = new FunctionDefinition_js_1.FunctionDefinition((value) => { if (value == null || value < 0) { return undefined; } let str = ''; while (str.length < value) { str += Math.random().toString(36).slice(2); } return str.slice(0, value); }, Type_js_1.typeString, [Type_js_1.typeNumber], undefined, undefined, undefined, false);