UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

32 lines 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSameAndValidRecursiveDataType = void 0; const constants_1 = require("../constants"); const dictionary_1 = require("../errors/dictionary"); const getValidDataTypeParam_1 = require("../utils/getValidDataTypeParam"); const primitiveFunctions_1 = require("../utils/primitiveFunctions"); function isSameAndValidRecursiveDataType(validDataTypes) { return (_param, _dataType, context) => { const args = context.fnNode.arguments; const dataTypePrimitive = (0, getValidDataTypeParam_1.getValidDataTypeParam)(args, validDataTypes); const isValidDataTypePrimitive = dataTypePrimitive !== constants_1.AST_PRIMITIVES.UNKNOWN; const expectedDataTypePrimitive = isValidDataTypePrimitive ? dataTypePrimitive : validDataTypes; const valid = isValidDataTypePrimitive && (0, primitiveFunctions_1.isSinglePrimitive)((0, primitiveFunctions_1.inferPrimitive)(...args.map((_arg) => _arg.primitive))); if (valid) { return { valid, mismatchData: { primitive: expectedDataTypePrimitive, }, }; } return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]), { mismatchData: { primitive: expectedDataTypePrimitive, } }); }; } exports.isSameAndValidRecursiveDataType = isSameAndValidRecursiveDataType; //# sourceMappingURL=isSameAndValidRecursiveDataType.js.map