UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

49 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPrimitiveAsValue = exports.isSinglePrimitive = exports.inferPrimitive = exports.getFunctionPrimitive = exports.primitiveIsIncluded = void 0; const constants_1 = require("../constants"); function primitiveIsIncluded(primitive, ...allowedPrimitives) { const primitives = Array.isArray(primitive) ? primitive : [primitive]; return primitives.some((pr) => allowedPrimitives.includes(pr)); } exports.primitiveIsIncluded = primitiveIsIncluded; function getFunctionPrimitive(definition, args) { if (typeof definition.primitiveResult !== 'function') return definition.primitiveResult; return definition.primitiveResult.apply(definition, [args]); } exports.getFunctionPrimitive = getFunctionPrimitive; function flatPrimitives(...primitives) { const resultPrimitives = []; if (!primitives) return resultPrimitives; primitives.forEach((pr) => { const pushElements = Array.isArray(pr) ? pr : [pr]; pushElements.forEach((pe) => { const existInResult = resultPrimitives.includes(pe); if (!existInResult) resultPrimitives.push(pe); }); }); return resultPrimitives; } function inferPrimitive(...primitives) { const flattedPrimitives = flatPrimitives(...primitives); if (flattedPrimitives.length === 0) return constants_1.AST_PRIMITIVES.UNKNOWN; return flattedPrimitives.length === 1 ? flattedPrimitives[0] : flattedPrimitives; } exports.inferPrimitive = inferPrimitive; function isSinglePrimitive(primitive) { return !Array.isArray(primitive); } exports.isSinglePrimitive = isSinglePrimitive; function getPrimitiveAsValue(primitive, options = { separator: '/' }) { if (!Array.isArray(primitive)) return primitive; return primitive.join(options.separator); } exports.getPrimitiveAsValue = getPrimitiveAsValue; //# sourceMappingURL=primitiveFunctions.js.map