UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

27 lines 1.26 kB
import { AST_PRIMITIVES, AST_TYPES } from '../constants'; export function getNumberFromLiteral(value, argument) { if (argument.type === AST_TYPES.literal && (argument.dataType === AST_PRIMITIVES.NUMBER || argument.primitive === AST_PRIMITIVES.NUMBER)) { const _value = value.replace('L', ''); return Number(_value); } return null; } export function getNumericValueFromArgument(param, argument) { var _a; const numberValue = getNumberFromLiteral(String(param), argument); if (numberValue !== null) return numberValue; const isUnaryExpression = argument.type === AST_TYPES.unaryExpression; // Negative numbers arrive as unary expression if (isUnaryExpression) { const unaryExp = ('node' in argument ? argument.node : argument); const isNegative = unaryExp.operator === '-'; const isNumber = unaryExp.right.type === AST_TYPES.literal && unaryExp.right.dataType === AST_PRIMITIVES.NUMBER; if (isNumber) return (((_a = getNumberFromLiteral(String(unaryExp.right.value), unaryExp.right)) !== null && _a !== void 0 ? _a : 0) * (isNegative ? -1 : 1)); } return param; } //# sourceMappingURL=getNumericValueFromArgument.js.map