@qrvey/formula-lang 0.11.2 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/constants/interfaces.d.ts +15 -6
  3. package/dist/cjs/errors/definitions.d.ts +19 -17
  4. package/dist/cjs/errors/definitions.js +31 -26
  5. package/dist/cjs/errors/definitions.js.map +1 -1
  6. package/dist/cjs/errors/dictionary.d.ts +1 -4
  7. package/dist/cjs/errors/dictionary.js +4 -19
  8. package/dist/cjs/errors/dictionary.js.map +1 -1
  9. package/dist/cjs/errors/mismatch.d.ts +12 -11
  10. package/dist/cjs/errors/mismatch.js +33 -15
  11. package/dist/cjs/errors/mismatch.js.map +1 -1
  12. package/dist/cjs/functions/datedif.js +3 -3
  13. package/dist/cjs/functions/datedif.js.map +1 -1
  14. package/dist/cjs/functions/if.js +26 -3
  15. package/dist/cjs/functions/if.js.map +1 -1
  16. package/dist/cjs/functions/ifs.js +35 -9
  17. package/dist/cjs/functions/ifs.js.map +1 -1
  18. package/dist/cjs/functions/isNull.js +56 -4
  19. package/dist/cjs/functions/isNull.js.map +1 -1
  20. package/dist/cjs/functions/mid.js +33 -1
  21. package/dist/cjs/functions/mid.js.map +1 -1
  22. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  23. package/dist/cjs/transpiler/validateFuncStructure.js +54 -58
  24. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  25. package/dist/cjs/utils/isAColumn.d.ts +2 -3
  26. package/dist/cjs/utils/isAColumn.js +2 -6
  27. package/dist/cjs/utils/isAColumn.js.map +1 -1
  28. package/dist/cjs/utils/isALiteral.d.ts +2 -0
  29. package/dist/cjs/utils/isALiteral.js +9 -0
  30. package/dist/cjs/utils/isALiteral.js.map +1 -0
  31. package/dist/cjs/utils/isBooleanExpression.d.ts +1 -1
  32. package/dist/cjs/utils/isBooleanExpression.js +9 -5
  33. package/dist/cjs/utils/isBooleanExpression.js.map +1 -1
  34. package/dist/cjs/utils/isDateParam.js +8 -2
  35. package/dist/cjs/utils/isDateParam.js.map +1 -1
  36. package/dist/cjs/utils/isNumberParam.js +8 -2
  37. package/dist/cjs/utils/isNumberParam.js.map +1 -1
  38. package/dist/cjs/utils/isStringParam.js +8 -2
  39. package/dist/cjs/utils/isStringParam.js.map +1 -1
  40. package/dist/cjs/utils/primitiveFunctions.d.ts +1 -0
  41. package/dist/cjs/utils/primitiveFunctions.js +5 -1
  42. package/dist/cjs/utils/primitiveFunctions.js.map +1 -1
  43. package/dist/module/constants/interfaces.d.ts +15 -6
  44. package/dist/module/errors/definitions.d.ts +19 -17
  45. package/dist/module/errors/definitions.js +27 -22
  46. package/dist/module/errors/definitions.js.map +1 -1
  47. package/dist/module/errors/dictionary.d.ts +1 -4
  48. package/dist/module/errors/dictionary.js +4 -19
  49. package/dist/module/errors/dictionary.js.map +1 -1
  50. package/dist/module/errors/mismatch.d.ts +12 -11
  51. package/dist/module/errors/mismatch.js +35 -17
  52. package/dist/module/errors/mismatch.js.map +1 -1
  53. package/dist/module/functions/datedif.js +3 -3
  54. package/dist/module/functions/datedif.js.map +1 -1
  55. package/dist/module/functions/if.js +27 -4
  56. package/dist/module/functions/if.js.map +1 -1
  57. package/dist/module/functions/ifs.js +36 -10
  58. package/dist/module/functions/ifs.js.map +1 -1
  59. package/dist/module/functions/isNull.js +57 -5
  60. package/dist/module/functions/isNull.js.map +1 -1
  61. package/dist/module/functions/mid.js +34 -2
  62. package/dist/module/functions/mid.js.map +1 -1
  63. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  64. package/dist/module/transpiler/validateFuncStructure.js +55 -59
  65. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  66. package/dist/module/utils/isAColumn.d.ts +2 -3
  67. package/dist/module/utils/isAColumn.js +2 -6
  68. package/dist/module/utils/isAColumn.js.map +1 -1
  69. package/dist/module/utils/isALiteral.d.ts +2 -0
  70. package/dist/module/utils/isALiteral.js +5 -0
  71. package/dist/module/utils/isALiteral.js.map +1 -0
  72. package/dist/module/utils/isBooleanExpression.d.ts +1 -1
  73. package/dist/module/utils/isBooleanExpression.js +9 -5
  74. package/dist/module/utils/isBooleanExpression.js.map +1 -1
  75. package/dist/module/utils/isDateParam.js +8 -2
  76. package/dist/module/utils/isDateParam.js.map +1 -1
  77. package/dist/module/utils/isNumberParam.js +8 -2
  78. package/dist/module/utils/isNumberParam.js.map +1 -1
  79. package/dist/module/utils/isStringParam.js +8 -2
  80. package/dist/module/utils/isStringParam.js.map +1 -1
  81. package/dist/module/utils/primitiveFunctions.d.ts +1 -0
  82. package/dist/module/utils/primitiveFunctions.js +3 -0
  83. package/dist/module/utils/primitiveFunctions.js.map +1 -1
  84. package/package.json +1 -1
  85. package/dist/cjs/utils/isNotAColumn.d.ts +0 -3
  86. package/dist/cjs/utils/isNotAColumn.js +0 -13
  87. package/dist/cjs/utils/isNotAColumn.js.map +0 -1
  88. package/dist/module/utils/isNotAColumn.d.ts +0 -3
  89. package/dist/module/utils/isNotAColumn.js +0 -9
  90. package/dist/module/utils/isNotAColumn.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
1
3
  import { isAColumn } from '../utils/isAColumn';
2
- import { isNotAColumn } from '../utils/isNotAColumn';
3
- import { inferPrimitive } from '../utils/primitiveFunctions';
4
+ import { isALiteral } from '../utils/isALiteral';
5
+ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
4
6
  /**
5
7
  * `ISNULL` Returns the replacement if the value is a null
6
8
  */
@@ -10,13 +12,13 @@ export const ISNULL = {
10
12
  {
11
13
  identifier: 'VALUE',
12
14
  optional: false,
13
- validator: [isAColumn],
15
+ validator: [samePrimitiveTypeCol],
14
16
  },
15
17
  {
16
18
  identifier: 'REPLACEMENT',
17
19
  optional: false,
18
20
  generic: true,
19
- validator: [isNotAColumn],
21
+ validator: [samePrimitiveTypeNonCol],
20
22
  },
21
23
  ],
22
24
  transpiler: {
@@ -25,11 +27,61 @@ export const ISNULL = {
25
27
  redshift,
26
28
  postgresql,
27
29
  },
28
- maxPrimitiveValues: 1,
29
30
  primitiveResult(args) {
30
31
  return inferPrimitive(...(args || []).map((arg) => arg.primitive));
31
32
  },
32
33
  };
34
+ function samePrimitiveTypeCol(param, dataType, context) {
35
+ const isColumn = isAColumn(context);
36
+ const baseResult = samePrimitiveType(param, dataType, context);
37
+ const valid = isColumn && baseResult.valid;
38
+ const primitive = baseResult.mismatchData
39
+ ? baseResult.mismatchData.primitive
40
+ : AST_PRIMITIVES.UNKNOWN;
41
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
42
+ type: AST_TYPES.column,
43
+ primitive,
44
+ } }), (!isColumn && Object.assign({}, ERROR_DICTIONARY[ERROR_LIST.missingColumnExpression]))), { valid });
45
+ }
46
+ function samePrimitiveTypeNonCol(param, dataType, context) {
47
+ const isLiteral = isALiteral(context);
48
+ const baseResult = samePrimitiveType(param, dataType, context);
49
+ const valid = isLiteral && baseResult.valid;
50
+ const primitive = baseResult.mismatchData
51
+ ? baseResult.mismatchData.primitive
52
+ : AST_PRIMITIVES.UNKNOWN;
53
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
54
+ type: AST_TYPES.literal,
55
+ primitive,
56
+ } }), (!isLiteral && Object.assign({}, ERROR_DICTIONARY[ERROR_LIST.noColumnExpression]))), { valid });
57
+ }
58
+ function samePrimitiveType(_param, _dataType, context) {
59
+ const firstPrimitive = primitiveArgIndex(context, 0);
60
+ const secondPrimitive = primitiveArgIndex(context, 1);
61
+ const ifPrimitive = calculateIsNullPrimitive(firstPrimitive, secondPrimitive);
62
+ const valid = firstPrimitive === secondPrimitive;
63
+ const baseResult = {
64
+ valid,
65
+ mismatchData: {
66
+ primitive: ifPrimitive,
67
+ },
68
+ };
69
+ if (!valid)
70
+ return Object.assign(Object.assign({}, baseResult), ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]);
71
+ return baseResult;
72
+ }
73
+ function primitiveArgIndex(context, index) {
74
+ var _a, _b;
75
+ const basePrimitive = (_b = (_a = context.fnNode.arguments) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.primitive;
76
+ return isSinglePrimitive(basePrimitive)
77
+ ? basePrimitive
78
+ : AST_PRIMITIVES.UNKNOWN;
79
+ }
80
+ function calculateIsNullPrimitive(firstPrimitive, secondPrimitive) {
81
+ if (firstPrimitive && firstPrimitive !== AST_PRIMITIVES.UNKNOWN)
82
+ return firstPrimitive;
83
+ return secondPrimitive !== null && secondPrimitive !== void 0 ? secondPrimitive : AST_PRIMITIVES.UNKNOWN;
84
+ }
33
85
  function elasticsearch(value, replacement) {
34
86
  return `IS_NULL_SCRIPT(${value}, ${replacement})`;
35
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,SAAS,CAAC;SACzB;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,YAAY,CAAC;SAC5B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,kBAAkB,EAAE,CAAC;IACrB,eAAe,CAAC,IAAiB;QAC7B,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,WAAmB;IACrD,OAAO,kBAAkB,KAAK,KAAK,WAAW,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,WAAmB;IAC3C,OAAO,YAAY,KAAK,KAAK,WAAW,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,WAAmB;IACjD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,WAAmB;IAChD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,WAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
1
+ import { AST_PRIMITIVES, AST_TYPES, ELASTICSEARCH_SCRIPT_NAMES, } from '../constants';
2
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
2
3
  import { isNumberParam, isStringParam } from '../utils';
3
4
  /**
4
5
  * `MID` Returns a segment of a string.
@@ -19,7 +20,7 @@ export const MID = {
19
20
  {
20
21
  identifier: 'EXTRACT_LENGTH',
21
22
  optional: true,
22
- validator: [isNumberParam],
23
+ validator: [isNumberParam, greaterThanZero],
23
24
  },
24
25
  ],
25
26
  transpiler: {
@@ -30,6 +31,37 @@ export const MID = {
30
31
  },
31
32
  primitiveResult: AST_PRIMITIVES.STRING,
32
33
  };
34
+ function greaterThanZero(param, _dataType, context) {
35
+ return greaterThanReference(param, context.argument, 0);
36
+ }
37
+ function greaterThanReference(param, arg, compareReference) {
38
+ const numericValue = getNumericValueFromArgument(param, arg);
39
+ const valid = typeof numericValue !== 'number' ||
40
+ compareValueWithReference(numericValue, compareReference);
41
+ if (!valid)
42
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.greaterThan]), { info: {
43
+ greaterThan: compareReference,
44
+ } });
45
+ return { valid };
46
+ }
47
+ function getNumericValueFromArgument(param, argument) {
48
+ if (typeof param === 'number')
49
+ return param;
50
+ const isUnaryExpression = argument.type === AST_TYPES.unaryExpression;
51
+ if (isUnaryExpression) {
52
+ const unaryExp = argument.node;
53
+ const isNegative = unaryExp.operator === '-';
54
+ const isNumber = unaryExp.right.type === AST_TYPES.literal &&
55
+ unaryExp.right.dataType === AST_PRIMITIVES.NUMBER;
56
+ if (isNumber)
57
+ return (unaryExp.right.value *
58
+ (isNegative ? -1 : 1));
59
+ }
60
+ return param;
61
+ }
62
+ function compareValueWithReference(value, reference) {
63
+ return value >= reference;
64
+ }
33
65
  function elasticsearch(current, start, length) {
34
66
  const optional = length ? `, ${length}` : '';
35
67
  return `${ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, ${start}${optional})`;
@@ -1 +1 @@
1
- {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACtF,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,aAAa,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { FunctionCallAST, FunctionDefinition, ProcessNodeResult } from '../constants/interfaces';
2
- export declare function validateFuncStructure(definition: FunctionDefinition, args: Array<ProcessNodeResult>, node: FunctionCallAST): boolean;
2
+ export declare function validateFuncStructure(definition: FunctionDefinition, args: Array<ProcessNodeResult>, node: FunctionCallAST): void;
@@ -1,28 +1,9 @@
1
1
  import { isNull } from '../utils/isNull';
2
- import { validateParameters, FunctionArgumentsMismatch } from '../errors';
2
+ import { validateParameters, FunctionArgumentsMismatch, ArgumentValidatorError, } from '../errors';
3
3
  import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
4
4
  import { RESPONSE_LEVEL } from '../constants';
5
- import { getFunctionPrimitive } from '../utils/primitiveFunctions';
6
5
  export function validateFuncStructure(definition, args, node) {
7
- var _a;
8
- const commonArgs = args.map((arg) => arg.node);
9
- const primitive = getFunctionPrimitive(definition, commonArgs);
10
- const singlePrimitive = Array.isArray(primitive) ? undefined : primitive;
11
- if (!isNull(definition.maxPrimitiveValues)) {
12
- const isPrimitiveAllowed = typeof primitive === 'string' ||
13
- (Array.isArray(primitive) &&
14
- primitive.length === definition.maxPrimitiveValues);
15
- if (!isPrimitiveAllowed) {
16
- const validator = Object.assign({ valid: false, source: RESPONSE_LEVEL.function }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]);
17
- const { expected, received } = validateParameters(definition, args, singlePrimitive);
18
- throw new FunctionArgumentsMismatch({
19
- node,
20
- validator,
21
- expected,
22
- received,
23
- });
24
- }
25
- }
6
+ var _a, _b;
26
7
  let parameterIndex = 0;
27
8
  let argumentIndex = 0;
28
9
  const parameters = definition.parameters || [];
@@ -30,6 +11,9 @@ export function validateFuncStructure(definition, args, node) {
30
11
  parameterIndex += 1;
31
12
  argumentIndex += 1;
32
13
  };
14
+ const execValidators = [];
15
+ let invalidValidator = false;
16
+ let hasMissmatch = false;
33
17
  while (parameterIndex < parameters.length) {
34
18
  const parameter = parameters[parameterIndex];
35
19
  const { value, dataType } = (_a = args[argumentIndex]) !== null && _a !== void 0 ? _a : {};
@@ -38,54 +22,66 @@ export function validateFuncStructure(definition, args, node) {
38
22
  continue;
39
23
  }
40
24
  if (isNull(value) && !parameter.optional) {
41
- const validator = Object.assign({ valid: false, source: RESPONSE_LEVEL.function }, ERROR_DICTIONARY[ERROR_LIST.missingArg]);
42
- const { expected, received } = validateParameters(definition, args, singlePrimitive);
43
- throw new FunctionArgumentsMismatch({
44
- node,
45
- parameter,
46
- validator,
47
- expected,
48
- received,
49
- });
25
+ invalidValidator = true;
26
+ hasMissmatch = true;
27
+ execValidators.push(Object.assign(Object.assign({ valid: false, source: RESPONSE_LEVEL.function }, ERROR_DICTIONARY[ERROR_LIST.missingArg]), { parameter,
28
+ argumentIndex }));
50
29
  }
51
- parameter.validator.forEach((validatorFunction) => {
52
- var _a;
53
- const validator = validatorFunction(value, dataType, (_a = args[argumentIndex]) !== null && _a !== void 0 ? _a : {});
30
+ const validatorContext = {
31
+ fnNode: node,
32
+ argument: (_b = args[argumentIndex]) !== null && _b !== void 0 ? _b : {},
33
+ };
34
+ for (const validatorFunction of parameter.validator) {
35
+ const validator = validatorFunction(value, dataType, validatorContext);
36
+ execValidators.push(Object.assign(Object.assign({}, validator), { parameter,
37
+ argumentIndex }));
54
38
  if (!validator.valid) {
55
- const { expected, received } = validateParameters(definition, args, singlePrimitive);
56
- const customExpectedType = validator.customExpectedType;
57
- if (customExpectedType && expected[parameterIndex]) {
58
- expected[parameterIndex].custom = true;
59
- expected[parameterIndex].primitive = customExpectedType;
60
- }
61
- validator.source = RESPONSE_LEVEL.function;
62
- throw new FunctionArgumentsMismatch({
63
- node,
64
- parameter,
65
- validator,
66
- expected,
67
- received,
68
- });
39
+ if (validator.mismatchData && !hasMissmatch)
40
+ hasMissmatch = true;
41
+ if (!invalidValidator)
42
+ invalidValidator = true;
43
+ break;
69
44
  }
70
- });
45
+ }
71
46
  incrementCounter();
72
- const hasMoreArguments = parameterIndex === parameters.length &&
73
- argumentIndex !== args.length;
47
+ const parameterListCompleted = parameterIndex === parameters.length;
48
+ const hasMoreArguments = argumentIndex < args.length;
74
49
  const isRecursive = typeof (definition === null || definition === void 0 ? void 0 : definition.recursiveStartIn) === 'number';
75
- if (hasMoreArguments && isRecursive) {
50
+ if (parameterListCompleted && hasMoreArguments && isRecursive) {
76
51
  parameterIndex = definition.recursiveStartIn;
77
52
  }
78
53
  }
54
+ if (invalidValidator) {
55
+ if (hasMissmatch) {
56
+ throwFunctionMismatch(definition, args, node, {
57
+ validators: execValidators,
58
+ });
59
+ }
60
+ else {
61
+ const failedValidator = execValidators.find((val) => !val.valid);
62
+ if (failedValidator)
63
+ throwArgumentError(node, failedValidator);
64
+ }
65
+ }
79
66
  if (argumentIndex < args.length) {
80
- const validator = Object.assign({ valid: false, source: RESPONSE_LEVEL.function }, ERROR_DICTIONARY[ERROR_LIST.tooManyArguments]);
81
- const { expected, received } = validateParameters(definition, args, singlePrimitive);
82
- throw new FunctionArgumentsMismatch({
83
- node,
84
- validator,
85
- expected,
86
- received,
67
+ throwFunctionMismatch(definition, args, node, {
68
+ error: ERROR_LIST.tooManyArguments,
87
69
  });
88
70
  }
89
- return true;
71
+ }
72
+ function throwFunctionMismatch(definition, args, node, validatorInfo, parameter) {
73
+ var _a;
74
+ const baseValidator = Object.assign({ valid: false, source: RESPONSE_LEVEL.function }, ERROR_DICTIONARY[(_a = validatorInfo.error) !== null && _a !== void 0 ? _a : ERROR_LIST.unknown]);
75
+ const { expected, received, validator } = validateParameters(definition, args, validatorInfo.validators);
76
+ throw new FunctionArgumentsMismatch({
77
+ node,
78
+ parameter,
79
+ validator: validator || baseValidator,
80
+ expected,
81
+ received,
82
+ });
83
+ }
84
+ function throwArgumentError(node, validator) {
85
+ throw new ArgumentValidatorError(node, validator);
90
86
  }
91
87
  //# sourceMappingURL=validateFuncStructure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateFuncStructure.js","sourceRoot":"","sources":["../../../src/transpiler/validateFuncStructure.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,UAAU,qBAAqB,CACjC,UAA8B,EAC9B,IAA8B,EAC9B,IAAqB;;IAErB,MAAM,UAAU,GAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;QACxC,MAAM,kBAAkB,GACpB,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACrB,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,EAAE;YACrB,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,CAAC,QAAQ,IAC5B,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CACpD,CAAC;YACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;YACF,MAAM,IAAI,yBAAyB,CAAC;gBAChC,IAAI;gBACJ,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACX,CAAC,CAAC;SACN;KACJ;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,cAAc,IAAI,CAAC,CAAC;QACpB,aAAa,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,OAAO,cAAc,GAAG,UAAU,CAAC,MAAM,EAAE;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,CAAC;QAEtD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE;YACrC,gBAAgB,EAAE,CAAC;YACnB,SAAS;SACZ;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YACtC,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,CAAC,QAAQ,IAC5B,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAC7C,CAAC;YACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;YACF,MAAM,IAAI,yBAAyB,CAAC;gBAChC,IAAI;gBACJ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACX,CAAC,CAAC;SACN;QAED,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;;YAC9C,MAAM,SAAS,GAAG,iBAAiB,CAC/B,KAAK,EACL,QAAQ,EACR,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,CAC5B,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBAClB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;gBAEF,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;gBACxD,IAAI,kBAAkB,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;oBAChD,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACvC,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,GAAG,kBAAkB,CAAC;iBAC3D;gBACD,SAAS,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC3C,MAAM,IAAI,yBAAyB,CAAC;oBAChC,IAAI;oBACJ,SAAS;oBACT,SAAS;oBACT,QAAQ;oBACR,QAAQ;iBACX,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB,EAAE,CAAC;QACnB,MAAM,gBAAgB,GAClB,cAAc,KAAK,UAAU,CAAC,MAAM;YACpC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gBAAgB,CAAA,KAAK,QAAQ,CAAC;QACrE,IAAI,gBAAgB,IAAI,WAAW,EAAE;YACjC,cAAc,GAAG,UAAU,CAAC,gBAA0B,CAAC;SAC1D;KACJ;IAED,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE;QAC7B,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,CAAC,QAAQ,IAC5B,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CACnD,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;QACF,MAAM,IAAI,yBAAyB,CAAC;YAChC,IAAI;YACJ,SAAS;YACT,QAAQ;YACR,QAAQ;SACX,CAAC,CAAC;KACN;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"validateFuncStructure.js","sourceRoot":"","sources":["../../../src/transpiler/validateFuncStructure.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import { Primitive } from '../constants';
2
- import { ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
3
- export declare function isAColumn(_param: any, _dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
1
+ import { ValidatorParameterContext } from '../constants/interfaces';
2
+ export declare function isAColumn(context: ValidatorParameterContext): boolean;
@@ -1,9 +1,5 @@
1
- import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
1
  import { AST_TYPES } from '../constants';
3
- export function isAColumn(_param, _dataType, argument) {
4
- const valid = argument.type === AST_TYPES.column;
5
- if (!valid)
6
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingColumnExpression]);
7
- return { valid };
2
+ export function isAColumn(context) {
3
+ return context.argument.type === AST_TYPES.column;
8
4
  }
9
5
  //# sourceMappingURL=isAColumn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isAColumn.js","sourceRoot":"","sources":["../../../src/utils/isAColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAGpD,MAAM,UAAU,SAAS,CACrB,MAAW,EACX,SAAgC,EAChC,QAA2B;IAE3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC;IACjD,IAAI,CAAC,KAAK;QACN,uBACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,uBAAuB,CAAC,EACzD;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isAColumn.js","sourceRoot":"","sources":["../../../src/utils/isAColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,UAAU,SAAS,CAAC,OAAkC;IACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC;AACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ValidatorParameterContext } from '../constants/interfaces';
2
+ export declare function isALiteral(context: ValidatorParameterContext): boolean;
@@ -0,0 +1,5 @@
1
+ import { AST_TYPES } from '../constants';
2
+ export function isALiteral(context) {
3
+ return context.argument.type === AST_TYPES.literal;
4
+ }
5
+ //# sourceMappingURL=isALiteral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isALiteral.js","sourceRoot":"","sources":["../../../src/utils/isALiteral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,UAAU,UAAU,CAAC,OAAkC;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC;AACvD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { Primitive } from '../constants';
2
2
  import { ValidatorResponse } from '../constants/interfaces';
3
- export declare function isBooleanExpression(param: any, dataType: Primitive | undefined): ValidatorResponse;
3
+ export declare function isBooleanExpression(_param: any, dataType: Primitive | undefined): ValidatorResponse;
@@ -1,12 +1,16 @@
1
1
  import { AST_PRIMITIVES } from '../constants';
2
2
  import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
- export function isBooleanExpression(param, dataType) {
3
+ export function isBooleanExpression(_param, dataType) {
4
4
  const valid = dataType === AST_PRIMITIVES.BOOLEAN;
5
- if (!valid) {
6
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.booleanExpression]);
7
- }
8
- return {
5
+ const baseResponse = {
9
6
  valid,
7
+ mismatchData: {
8
+ primitive: AST_PRIMITIVES.BOOLEAN,
9
+ },
10
10
  };
11
+ if (!valid) {
12
+ return Object.assign(Object.assign({}, baseResponse), ERROR_DICTIONARY[ERROR_LIST.booleanExpression]);
13
+ }
14
+ return baseResponse;
11
15
  }
12
16
  //# sourceMappingURL=isBooleanExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBooleanExpression.js","sourceRoot":"","sources":["../../../src/utils/isBooleanExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,UAAU,mBAAmB,CAC/B,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,OAAO,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE;QACR,uBACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,EACnD;KACL;IACD,OAAO;QACH,KAAK;KACR,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"isBooleanExpression.js","sourceRoot":"","sources":["../../../src/utils/isBooleanExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,UAAU,mBAAmB,CAC/B,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,OAAO,CAAC;IAClD,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,cAAc,CAAC,OAAO;SACpC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK,EAAE;QACR,uCACO,YAAY,GACZ,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,EACnD;KACL;IACD,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -2,8 +2,14 @@ import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
2
  import { AST_PRIMITIVES } from '../constants';
3
3
  export function isDateParam(_param, dataType) {
4
4
  const valid = dataType === AST_PRIMITIVES.DATE;
5
+ const baseResponse = {
6
+ valid,
7
+ mismatchData: {
8
+ primitive: AST_PRIMITIVES.DATE,
9
+ },
10
+ };
5
11
  if (!valid)
6
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingDate]);
7
- return { valid };
12
+ return Object.assign(Object.assign({}, baseResponse), ERROR_DICTIONARY[ERROR_LIST.missingDate]);
13
+ return baseResponse;
8
14
  }
9
15
  //# sourceMappingURL=isDateParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,WAAW,CACvB,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,WAAW,CACvB,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,IAAI,CAAC;IAC/C,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,cAAc,CAAC,IAAI;SACjC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCAAY,YAAY,GAAK,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAG;IAC5E,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -3,8 +3,14 @@ import { AST_PRIMITIVES } from '../constants';
3
3
  export function isNumberParam(param, dataType) {
4
4
  const valid = typeof param === AST_PRIMITIVES.NUMBER ||
5
5
  dataType === AST_PRIMITIVES.NUMBER;
6
+ const baseResponse = {
7
+ valid,
8
+ mismatchData: {
9
+ primitive: AST_PRIMITIVES.NUMBER,
10
+ },
11
+ };
6
12
  if (!valid)
7
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingNumber]);
8
- return { valid };
13
+ return Object.assign(Object.assign({}, baseResponse), ERROR_DICTIONARY[ERROR_LIST.missingNumber]);
14
+ return baseResponse;
9
15
  }
10
16
  //# sourceMappingURL=isNumberParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM;QACtC,QAAQ,KAAK,cAAc,CAAC,MAAM,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM;QACtC,QAAQ,KAAK,cAAc,CAAC,MAAM,CAAC;IACvC,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,cAAc,CAAC,MAAM;SACnC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCACO,YAAY,GACZ,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAC/C;IACN,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -3,8 +3,14 @@ import { AST_PRIMITIVES } from '../constants';
3
3
  export function isStringParam(param, dataType) {
4
4
  const valid = dataType === AST_PRIMITIVES.STRING ||
5
5
  (dataType === undefined && typeof param === AST_PRIMITIVES.STRING);
6
+ const baseResponse = {
7
+ valid,
8
+ mismatchData: {
9
+ primitive: AST_PRIMITIVES.STRING,
10
+ },
11
+ };
6
12
  if (!valid)
7
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingString]);
8
- return { valid };
13
+ return Object.assign(Object.assign({}, baseResponse), ERROR_DICTIONARY[ERROR_LIST.missingString]);
14
+ return baseResponse;
9
15
  }
10
16
  //# sourceMappingURL=isStringParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,QAAQ,KAAK,cAAc,CAAC,MAAM;QAClC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,QAAQ,KAAK,cAAc,CAAC,MAAM;QAClC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,cAAc,CAAC,MAAM;SACnC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCACO,YAAY,GACZ,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAC/C;IACN,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -3,3 +3,4 @@ import { CommonAST, FunctionDefinition } from '../constants/interfaces';
3
3
  export declare function primitiveIsIncluded(primitive: Primitive, ...allowedPrimitives: AST_PRIMITIVES[]): boolean;
4
4
  export declare function getFunctionPrimitive(definition: FunctionDefinition, args: CommonAST[]): Primitive;
5
5
  export declare function inferPrimitive(...primitives: Primitive[]): Primitive;
6
+ export declare function isSinglePrimitive(primitive: Primitive): primitive is AST_PRIMITIVES;
@@ -30,4 +30,7 @@ export function inferPrimitive(...primitives) {
30
30
  ? flattedPrimitives[0]
31
31
  : flattedPrimitives;
32
32
  }
33
+ export function isSinglePrimitive(primitive) {
34
+ return !Array.isArray(primitive);
35
+ }
33
36
  //# sourceMappingURL=primitiveFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,GAAG,iBAAmC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,UAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC;IAEtC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,UAAuB;IAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,gBAAgB,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa;gBAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,GAAG,iBAAmC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,UAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC;IAEtC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,UAAuB;IAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,gBAAgB,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa;gBAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,SAAoB;IAEpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/formula-lang",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "QFormula support for qrvey projects",
5
5
  "types": "dist/module/index.d.ts",
6
6
  "main": "dist/module/index.js",
@@ -1,3 +0,0 @@
1
- import { ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
2
- import { Primitive } from '../constants';
3
- export declare function isNotAColumn(_param: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNotAColumn = void 0;
4
- const dictionary_1 = require("../errors/dictionary");
5
- const isAColumn_1 = require("./isAColumn");
6
- function isNotAColumn(_param, dataType, argument) {
7
- const valid = !(0, isAColumn_1.isAColumn)(_param, dataType, argument).valid;
8
- if (!valid)
9
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.noColumnExpression]);
10
- return { valid };
11
- }
12
- exports.isNotAColumn = isNotAColumn;
13
- //# sourceMappingURL=isNotAColumn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isNotAColumn.js","sourceRoot":"","sources":["../../../src/utils/isNotAColumn.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AAGpE,2CAAwC;AAExC,SAAgB,YAAY,CACxB,MAAW,EACX,QAA+B,EAC/B,QAA2B;IAE3B,MAAM,KAAK,GAAG,CAAC,IAAA,qBAAS,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC;IAC3D,IAAI,CAAC,KAAK;QACN,uBACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,CAAC,kBAAkB,CAAC,EACpD;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAZD,oCAYC"}
@@ -1,3 +0,0 @@
1
- import { ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
2
- import { Primitive } from '../constants';
3
- export declare function isNotAColumn(_param: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
@@ -1,9 +0,0 @@
1
- import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
- import { isAColumn } from './isAColumn';
3
- export function isNotAColumn(_param, dataType, argument) {
4
- const valid = !isAColumn(_param, dataType, argument).valid;
5
- if (!valid)
6
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.noColumnExpression]);
7
- return { valid };
8
- }
9
- //# sourceMappingURL=isNotAColumn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isNotAColumn.js","sourceRoot":"","sources":["../../../src/utils/isNotAColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,YAAY,CACxB,MAAW,EACX,QAA+B,EAC/B,QAA2B;IAE3B,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC;IAC3D,IAAI,CAAC,KAAK;QACN,uBACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,EACpD;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}