@qrvey/formula-lang 0.11.2 → 0.11.4

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 +20 -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 +34 -2
  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 +35 -3
  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
@@ -6,14 +6,13 @@ interface FunctionElementDefinition {
6
6
  export interface FunctionDefinition extends FunctionElementDefinition {
7
7
  recursiveStartIn?: number;
8
8
  transpiler: EnginesFunction;
9
- parameters?: Array<FunctionParameters>;
9
+ parameters?: Array<FunctionParameter>;
10
10
  primitiveResult: Primitive | ((args: CommonAST[]) => Primitive);
11
- maxPrimitiveValues?: number;
12
11
  }
13
12
  export type EnginesFunction = {
14
13
  [key in ENGINES]: Function;
15
14
  };
16
- export interface FunctionParameters extends FunctionElementDefinition {
15
+ export interface FunctionParameter extends FunctionElementDefinition {
17
16
  optional: boolean;
18
17
  generic?: boolean;
19
18
  validator: Array<ValidatorFunctionParameter>;
@@ -24,8 +23,12 @@ export interface ProcessNodeResult {
24
23
  dataType: Primitive;
25
24
  node: CommonAST;
26
25
  }
26
+ export interface ValidatorParameterContext {
27
+ fnNode: FunctionCallAST;
28
+ argument: ProcessNodeResult;
29
+ }
27
30
  interface ValidatorFunctionParameter {
28
- (value: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidationParameterResponse;
31
+ (value: any, dataType: Primitive | undefined, context: ValidatorParameterContext): ValidatorResponse;
29
32
  }
30
33
  export interface ValidatorResponse {
31
34
  valid: boolean;
@@ -33,9 +36,15 @@ export interface ValidatorResponse {
33
36
  source?: RESPONSE_LEVEL;
34
37
  message?: string;
35
38
  info?: any;
39
+ mismatchData?: ValidatorExpectedInfo;
40
+ }
41
+ export interface ValidatorParameterResponse extends ValidatorResponse {
42
+ parameter: FunctionParameter;
43
+ argumentIndex: number;
36
44
  }
37
- export interface ValidationParameterResponse extends ValidatorResponse {
38
- customExpectedType?: string;
45
+ export interface ValidatorExpectedInfo {
46
+ primitive: AST_PRIMITIVES;
47
+ type?: AST_TYPES;
39
48
  }
40
49
  export interface TranspilationResponse {
41
50
  valid: boolean;
@@ -1,4 +1,5 @@
1
- import { BinaryExpressionAST, CommonAST, FunctionCallAST, FunctionParameters, UnaryExpressionAST, UnknownAST, ValidatorResponse } from '../constants/interfaces';
1
+ import { ErrorDictionary } from './dictionary';
2
+ import { BinaryExpressionAST, CommonAST, FunctionCallAST, FunctionParameter, UnaryExpressionAST, UnknownAST, ValidatorParameterResponse, ValidatorResponse } from '../constants/interfaces';
2
3
  import { Primitive } from '../constants';
3
4
  export declare class BaseError extends Error {
4
5
  code: string;
@@ -10,15 +11,28 @@ export declare class BaseError extends Error {
10
11
  export declare class GenericError extends BaseError {
11
12
  constructor(message?: string);
12
13
  }
13
- export declare class UnknownFunctionError extends BaseError {
14
+ export declare class FunctionError extends BaseError {
15
+ node: FunctionCallAST;
16
+ constructor(node: FunctionCallAST, errorDict: ErrorDictionary);
17
+ }
18
+ export declare class UnknownFunctionError extends FunctionError {
14
19
  node: FunctionCallAST;
15
20
  constructor(node: FunctionCallAST);
16
21
  }
17
- export declare class MissingArgumentError extends BaseError {
22
+ export declare class ArgumentError extends FunctionError {
23
+ node: FunctionCallAST;
24
+ constructor(node: FunctionCallAST, errorDict: ErrorDictionary);
25
+ }
26
+ export declare class ArgumentValidatorError extends FunctionError {
18
27
  node: FunctionCallAST;
19
- parameter: FunctionParameters;
28
+ readonly validator: ValidatorParameterResponse;
29
+ constructor(node: FunctionCallAST, validator: ValidatorParameterResponse);
30
+ }
31
+ export declare class MissingArgumentError extends ArgumentError {
32
+ node: FunctionCallAST;
33
+ parameter: FunctionParameter;
20
34
  readonly argumentIndex: number;
21
- constructor(node: FunctionCallAST, parameter: FunctionParameters, argumentIndex: number);
35
+ constructor(node: FunctionCallAST, parameter: FunctionParameter, argumentIndex: number);
22
36
  toString(): string;
23
37
  }
24
38
  export declare class MissingParenthesisError extends BaseError {
@@ -29,10 +43,6 @@ export declare class UnknownTokenError extends BaseError {
29
43
  node: UnknownAST;
30
44
  constructor(node: UnknownAST);
31
45
  }
32
- export declare class NotAllowedExpressionError extends BaseError {
33
- node: CommonAST;
34
- constructor(node: CommonAST);
35
- }
36
46
  export declare class NotAllowedOperationError extends BaseError {
37
47
  node: UnaryExpressionAST | BinaryExpressionAST;
38
48
  constructor(node: UnaryExpressionAST | BinaryExpressionAST);
@@ -49,15 +59,7 @@ export declare class InvalidArgumentError extends BaseError {
49
59
  readonly argumentIndex: number;
50
60
  constructor(node: FunctionCallAST, validatorResponse: ValidatorResponse, argumentIndex: number);
51
61
  }
52
- export declare class UnknownExpressionError extends BaseError {
53
- expression: CommonAST;
54
- constructor(expression: CommonAST);
55
- }
56
62
  export declare class InferredPrimitiveError extends BaseError {
57
63
  expression: CommonAST;
58
64
  constructor(expression: CommonAST);
59
65
  }
60
- export declare class ArgumentsDataTypeError extends BaseError {
61
- expression: CommonAST;
62
- constructor(expression: CommonAST);
63
- }
@@ -27,15 +27,38 @@ export class GenericError extends BaseError {
27
27
  super(ERROR_DICTIONARY[ERROR_LIST.unknown].code, message);
28
28
  }
29
29
  }
30
- export class UnknownFunctionError extends BaseError {
30
+ export class FunctionError extends BaseError {
31
+ constructor(node, errorDict) {
32
+ super(errorDict.code, errorDict.message, node);
33
+ this.node = node;
34
+ }
35
+ }
36
+ export class UnknownFunctionError extends FunctionError {
31
37
  constructor(node) {
32
- super(ERROR_DICTIONARY[ERROR_LIST.unknownFunction].code, ERROR_DICTIONARY[ERROR_LIST.unknownFunction].message, node);
38
+ super(node, ERROR_DICTIONARY[ERROR_LIST.unknownFunction]);
39
+ this.node = node;
40
+ }
41
+ }
42
+ export class ArgumentError extends FunctionError {
43
+ constructor(node, errorDict) {
44
+ super(node, errorDict);
33
45
  this.node = node;
34
46
  }
35
47
  }
36
- export class MissingArgumentError extends BaseError {
48
+ export class ArgumentValidatorError extends FunctionError {
49
+ constructor(node, validator) {
50
+ var _a, _b;
51
+ super(node, {
52
+ message: (_a = validator.message) !== null && _a !== void 0 ? _a : '',
53
+ code: (_b = validator.code) !== null && _b !== void 0 ? _b : ERROR_LIST.unknown,
54
+ });
55
+ this.node = node;
56
+ this.validator = validator;
57
+ }
58
+ }
59
+ export class MissingArgumentError extends ArgumentError {
37
60
  constructor(node, parameter, argumentIndex) {
38
- super(ERROR_DICTIONARY[ERROR_LIST.missingArg].code, ERROR_DICTIONARY[ERROR_LIST.missingArg].message, node);
61
+ super(node, ERROR_DICTIONARY[ERROR_LIST.missingArg]);
39
62
  this.node = node;
40
63
  this.parameter = parameter;
41
64
  this.argumentIndex = argumentIndex;
@@ -56,12 +79,6 @@ export class UnknownTokenError extends BaseError {
56
79
  this.node = node;
57
80
  }
58
81
  }
59
- export class NotAllowedExpressionError extends BaseError {
60
- constructor(node) {
61
- super(ERROR_DICTIONARY[ERROR_LIST.notAllowedExpression].code, ERROR_DICTIONARY[ERROR_LIST.notAllowedExpression].message, node);
62
- this.node = node;
63
- }
64
- }
65
82
  export class NotAllowedOperationError extends BaseError {
66
83
  constructor(node) {
67
84
  super(ERROR_DICTIONARY[ERROR_LIST.notAllowedOperation].code, ERROR_DICTIONARY[ERROR_LIST.notAllowedOperation].message, node);
@@ -90,22 +107,10 @@ export class InvalidArgumentError extends BaseError {
90
107
  this.argumentIndex = argumentIndex;
91
108
  }
92
109
  }
93
- export class UnknownExpressionError extends BaseError {
94
- constructor(expression) {
95
- super(ERROR_DICTIONARY[ERROR_LIST.unknownExpression].code, ERROR_DICTIONARY[ERROR_LIST.unknownExpression].message, expression);
96
- this.expression = expression;
97
- }
98
- }
99
110
  export class InferredPrimitiveError extends BaseError {
100
111
  constructor(expression) {
101
112
  super(ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive].code, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive].message, expression);
102
113
  this.expression = expression;
103
114
  }
104
115
  }
105
- export class ArgumentsDataTypeError extends BaseError {
106
- constructor(expression) {
107
- super(ERROR_DICTIONARY[ERROR_LIST.argumentsDataType].code, ERROR_DICTIONARY[ERROR_LIST.argumentsDataType].message, expression);
108
- this.expression = expression;
109
- }
110
- }
111
116
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY5D,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChC,YACW,IAAY,EACZ,OAAe,EACf,IAA8C;QAErD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAA0C;QAGrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;SAC1C;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC5B,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC;SAC7D;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC5B,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC;SAC7D;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACvC,YAAY,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO;QAC9D,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YAAmB,IAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,EACjD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,EACpD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YACW,IAAqB,EACrB,SAA6B,EACpB,aAAqB;QAErC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,EAC5C,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAC/C,IAAI,CACP,CAAC;QARK,SAAI,GAAJ,IAAI,CAAiB;QACrB,cAAS,GAAT,SAAS,CAAoB;QACpB,kBAAa,GAAb,aAAa,CAAQ;IAOzC,CAAC;IAED,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACxE,CAAC;CACJ;AAED,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAClD,YAAmB,IAAiC;QAChD,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,IAAI,EACpD,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,OAAO,EACvD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAA6B;IAMpD,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC5C,YAAmB,IAAgB;QAC/B,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAC9C,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EACjD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAY;IAMnC,CAAC;CACJ;AAED,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACpD,YAAmB,IAAe;QAC9B,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,IAAI,EACtD,gBAAgB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,EACzD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAW;IAMlC,CAAC;CACJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IACnD,YAAmB,IAA8C;QAC7D,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,IAAI,EACrD,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO,EACxD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAA0C;IAMjE,CAAC;IAED,IAAI,aAAa;;QACb,OAAO,MAAC,IAAI,CAAC,IAA4B,CAAC,IAAI,0CAAE,SAAS,CAAC;IAC9D,CAAC;IAED,IAAI,cAAc;;QACd,OAAO,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,SAAS,CAAC;IACtC,CAAC;CACJ;AAED,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAChD,YAAmB,IAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAClD,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,OAAO,EACrD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YACW,IAAqB,EACrB,iBAAoC,EAC3B,aAAqB;QAErC,KAAK,CACD,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,KAAI,EAAE,EAC7B,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,KAAI,EAAE,EAChC,IAAI,CACP,CAAC;QARK,SAAI,GAAJ,IAAI,CAAiB;QACrB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC3B,kBAAa,GAAb,aAAa,CAAQ;IAOzC,CAAC;CACJ;AAED,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACjD,YAAmB,UAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EACnD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EACtD,UAAU,CACb,CAAC;QALa,eAAU,GAAV,UAAU,CAAW;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACjD,YAAmB,UAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EACnD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EACtD,UAAU,CACb,CAAC;QALa,eAAU,GAAV,UAAU,CAAW;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACjD,YAAmB,UAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EACnD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,OAAO,EACtD,UAAU,CACb,CAAC;QALa,eAAU,GAAV,UAAU,CAAW;IAMxC,CAAC;CACJ"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,14 @@ export declare enum ERROR_LIST {
5
5
  missingString = "missingString",
6
6
  missingNumber = "missingNumber",
7
7
  missingDate = "missingDate",
8
- greaterThanZero = "greaterThanZero",
8
+ greaterThan = "greaterThan",
9
9
  missingArg = "missingArg",
10
10
  missingParenthesis = "missingParenthesis",
11
11
  unknownFunction = "unknownFunction",
12
12
  unknown = "unknown",
13
13
  customDateDifParams = "customDateDifParams",
14
14
  tooManyArguments = "tooManyArguments",
15
- unknownExpression = "unknownExpression",
16
15
  unknownToken = "unknownToken",
17
- notAllowedExpression = "notAllowedExpression",
18
16
  notAllowedOperation = "notAllowedOperation",
19
17
  outOfRange = "outOfRange",
20
18
  invalidCastNumber = "invalidCastNumber",
@@ -22,7 +20,6 @@ export declare enum ERROR_LIST {
22
20
  booleanExpression = "booleanExpression",
23
21
  missingColumnExpression = "missingColumnExpression",
24
22
  noColumnExpression = "noColumnExpression",
25
- argumentsDataType = "argumentsDataType",
26
23
  functionArgumentsMismatch = "functionArgumentsMismatch"
27
24
  }
28
25
  type ErrorsType = {
@@ -6,16 +6,14 @@ export var ERROR_LIST;
6
6
  ERROR_LIST["missingString"] = "missingString";
7
7
  ERROR_LIST["missingNumber"] = "missingNumber";
8
8
  ERROR_LIST["missingDate"] = "missingDate";
9
- ERROR_LIST["greaterThanZero"] = "greaterThanZero";
9
+ ERROR_LIST["greaterThan"] = "greaterThan";
10
10
  ERROR_LIST["missingArg"] = "missingArg";
11
11
  ERROR_LIST["missingParenthesis"] = "missingParenthesis";
12
12
  ERROR_LIST["unknownFunction"] = "unknownFunction";
13
13
  ERROR_LIST["unknown"] = "unknown";
14
14
  ERROR_LIST["customDateDifParams"] = "customDateDifParams";
15
15
  ERROR_LIST["tooManyArguments"] = "tooManyArguments";
16
- ERROR_LIST["unknownExpression"] = "unknownExpression";
17
16
  ERROR_LIST["unknownToken"] = "unknownToken";
18
- ERROR_LIST["notAllowedExpression"] = "notAllowedExpression";
19
17
  ERROR_LIST["notAllowedOperation"] = "notAllowedOperation";
20
18
  ERROR_LIST["outOfRange"] = "outOfRange";
21
19
  ERROR_LIST["invalidCastNumber"] = "invalidCastNumber";
@@ -23,7 +21,6 @@ export var ERROR_LIST;
23
21
  ERROR_LIST["booleanExpression"] = "booleanExpression";
24
22
  ERROR_LIST["missingColumnExpression"] = "missingColumnExpression";
25
23
  ERROR_LIST["noColumnExpression"] = "noColumnExpression";
26
- ERROR_LIST["argumentsDataType"] = "argumentsDataType";
27
24
  ERROR_LIST["functionArgumentsMismatch"] = "functionArgumentsMismatch";
28
25
  })(ERROR_LIST || (ERROR_LIST = {}));
29
26
  export const ERROR_DICTIONARY = {
@@ -51,9 +48,9 @@ export const ERROR_DICTIONARY = {
51
48
  message: 'Element has to be a Date',
52
49
  code: 'MISSING_DATE',
53
50
  },
54
- [ERROR_LIST.greaterThanZero]: {
55
- message: 'Element has to be greater than 0',
56
- code: 'GREATER_THAN_ZERO',
51
+ [ERROR_LIST.greaterThan]: {
52
+ message: 'Element has to be greater than',
53
+ code: 'GREATER_THAN',
57
54
  },
58
55
  [ERROR_LIST.missingArg]: {
59
56
  message: 'Missing arguments',
@@ -83,14 +80,6 @@ export const ERROR_DICTIONARY = {
83
80
  message: 'Unit param have to be equal to: "Y", "M", "D"',
84
81
  code: 'DATE_DIF_UNIT_PARAM',
85
82
  },
86
- [ERROR_LIST.unknownExpression]: {
87
- message: 'Unknown expression',
88
- code: 'UNKNOWN_EXPRESSION',
89
- },
90
- [ERROR_LIST.notAllowedExpression]: {
91
- message: 'Expression not allowed',
92
- code: 'NOT_ALLOWED_EXPRESSION',
93
- },
94
83
  [ERROR_LIST.notAllowedOperation]: {
95
84
  message: 'Operation not allowed',
96
85
  code: 'NOT_ALLOWED_OPERATION',
@@ -119,10 +108,6 @@ export const ERROR_DICTIONARY = {
119
108
  message: 'Argument cannot be a column.',
120
109
  code: 'NO_COLUMN_EXPRESSION',
121
110
  },
122
- [ERROR_LIST.argumentsDataType]: {
123
- message: 'Arguments should have the same data type.',
124
- code: 'ARGUMENTS_DATATYPE_ERROR',
125
- },
126
111
  [ERROR_LIST.functionArgumentsMismatch]: {
127
112
  message: 'Function arguments mismatch.',
128
113
  code: 'FUNCTION_ARGUMENTS_MISMATCH',
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,34 @@
1
- import { AST_PRIMITIVES, AST_TYPES, Primitive } from '../constants';
2
- import { CommonAST, FunctionDefinition, FunctionParameters, ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
3
- import { BaseError } from './definitions';
1
+ import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
+ import { FunctionCallAST, FunctionDefinition, FunctionParameter, ProcessNodeResult, ValidatorParameterResponse, ValidatorResponse } from '../constants/interfaces';
3
+ import { FunctionError } from './definitions';
4
4
  interface MissmatchDetail {
5
- primitive: Primitive | AST_TYPES | string;
5
+ primitive: AST_PRIMITIVES;
6
+ type?: AST_TYPES;
6
7
  from?: number;
7
8
  to?: number;
8
9
  optional?: boolean;
9
10
  }
10
11
  interface MissmatchExpected extends MissmatchDetail {
11
- custom?: boolean;
12
12
  generic?: boolean;
13
13
  }
14
14
  interface Mismatch {
15
- node: CommonAST | undefined;
15
+ node: FunctionCallAST;
16
16
  validator: ValidatorResponse;
17
- parameter?: FunctionParameters;
17
+ parameter?: FunctionParameter;
18
18
  expected: Array<MissmatchExpected>;
19
19
  received: Array<MissmatchDetail>;
20
20
  }
21
- export declare class FunctionArgumentsMismatch extends BaseError implements Mismatch {
21
+ export declare class FunctionArgumentsMismatch extends FunctionError implements Mismatch {
22
22
  constructor(mismatch: Mismatch);
23
23
  validator: ValidatorResponse;
24
- parameter: FunctionParameters | undefined;
24
+ parameter: FunctionParameter | undefined;
25
25
  expected: Array<MissmatchExpected>;
26
26
  received: Array<MissmatchDetail>;
27
- node: CommonAST | undefined;
27
+ node: FunctionCallAST;
28
28
  }
29
- export declare function validateParameters(definition: FunctionDefinition, args: Array<ProcessNodeResult>, genericType?: AST_PRIMITIVES | AST_TYPES | string): {
29
+ export declare function validateParameters(definition: FunctionDefinition, args: Array<ProcessNodeResult>, validators?: ValidatorParameterResponse[]): {
30
30
  expected: Array<MissmatchExpected>;
31
31
  received: Array<MissmatchDetail>;
32
+ validator?: ValidatorParameterResponse;
32
33
  };
33
34
  export {};
@@ -1,43 +1,63 @@
1
- import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
- import { BaseError } from './definitions';
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isSinglePrimitive } from '../utils/primitiveFunctions';
3
+ import { FunctionError } from './definitions';
3
4
  import { ERROR_DICTIONARY, ERROR_LIST } from './dictionary';
4
- export class FunctionArgumentsMismatch extends BaseError {
5
+ export class FunctionArgumentsMismatch extends FunctionError {
5
6
  constructor(mismatch) {
6
- super(ERROR_DICTIONARY[ERROR_LIST.functionArgumentsMismatch].code, ERROR_DICTIONARY[ERROR_LIST.functionArgumentsMismatch].message, mismatch.node);
7
+ super(mismatch.node, ERROR_DICTIONARY[ERROR_LIST.functionArgumentsMismatch]);
7
8
  Object.assign(this, mismatch); // Expose mismatch params to `this` class
8
9
  }
9
10
  }
10
- export function validateParameters(definition, args, genericType) {
11
+ export function validateParameters(definition, args, validators = []) {
11
12
  const received = args.map((arg) => {
12
13
  const { from, to, primitive } = arg.node;
13
- return { from, to, primitive };
14
+ const singlePrimitive = isSinglePrimitive(primitive)
15
+ ? primitive
16
+ : AST_PRIMITIVES.UNKNOWN;
17
+ return { from, to, primitive: singlePrimitive };
14
18
  });
15
19
  const parameters = definition.parameters || [];
16
20
  const expected = [];
17
21
  let parameterCount = 0;
22
+ let argumentIndex = 0;
23
+ let recursiveOptionals = false;
18
24
  while (parameterCount < parameters.length) {
19
25
  const param = parameters[parameterCount];
20
- const expectedPrimitive = transformParamInMissmatchExpected(param, genericType);
26
+ const paramValidators = validators.filter((fv) => fv.argumentIndex === argumentIndex);
27
+ const expectedPrimitive = transformParamInMissmatchExpected(param, paramValidators, recursiveOptionals);
21
28
  expected.push(expectedPrimitive);
22
29
  parameterCount++;
30
+ argumentIndex++;
23
31
  const parameterListCompleted = parameterCount === parameters.length;
24
32
  const hasMoreArguments = expected.length < received.length;
25
33
  const isRecursive = typeof (definition === null || definition === void 0 ? void 0 : definition.recursiveStartIn) === 'number';
26
34
  if (parameterListCompleted && isRecursive && hasMoreArguments) {
27
35
  parameterCount = definition.recursiveStartIn;
36
+ recursiveOptionals = true;
28
37
  }
29
38
  }
30
- return { expected, received };
39
+ const validator = validators.find((val) => !val.valid);
40
+ return { expected, received, validator };
31
41
  }
32
- function transformParamInMissmatchExpected(param, genericType) {
33
- const result = { optional: param.optional };
34
- let primitive = getExpectedPrimitiveFromParam(param);
35
- if (primitive === AST_PRIMITIVES.UNKNOWN && genericType) {
36
- primitive = genericType;
42
+ function transformParamInMissmatchExpected(param, paramValidators, forcedOptional) {
43
+ const result = {
44
+ optional: forcedOptional === true ? forcedOptional : param.optional,
45
+ };
46
+ const expectedInfo = getExpectedInfoFromParam(param, paramValidators);
47
+ return Object.assign(Object.assign(Object.assign({}, result), expectedInfo), (param.generic && { generic: param.generic }));
48
+ }
49
+ function getExpectedInfoFromParam(param, paramValidators) {
50
+ const failedValidator = paramValidators.find((val) => !val.valid && !!val.mismatchData);
51
+ if (failedValidator) {
52
+ return failedValidator.mismatchData;
37
53
  }
38
- return Object.assign(Object.assign(Object.assign({}, result), { primitive }), (param.generic && { generic: param.generic }));
54
+ const firstExpected = paramValidators.find((val) => !!val.mismatchData);
55
+ if (firstExpected)
56
+ return firstExpected.mismatchData;
57
+ const primitive = getParamTypeFromMap(param);
58
+ return { primitive };
39
59
  }
40
- function getExpectedPrimitiveFromParam(param) {
60
+ function getParamTypeFromMap(param) {
41
61
  if (param.validator.length === 0) {
42
62
  return AST_PRIMITIVES.UNKNOWN;
43
63
  }
@@ -56,7 +76,5 @@ const FUNCTION_PRIMITIVE_MAPPER = {
56
76
  isNumberParam: AST_PRIMITIVES.NUMBER,
57
77
  isDateParam: AST_PRIMITIVES.DATE,
58
78
  isBooleanExpression: AST_PRIMITIVES.BOOLEAN,
59
- isAColumn: AST_TYPES.column,
60
- customValidatorYMD: AST_PRIMITIVES.STRING,
61
79
  };
62
80
  //# sourceMappingURL=mismatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mismatch.js","sourceRoot":"","sources":["../../../src/errors/mismatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mismatch.js","sourceRoot":"","sources":["../../../src/errors/mismatch.ts"],"names":[],"mappings":"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"}
@@ -38,9 +38,9 @@ function customValidatorYMD(param) {
38
38
  param = removeQuotes(param);
39
39
  const valid = YMD_UNIT_LIST.includes(param);
40
40
  if (!valid) {
41
- const customExpectedType = YMD_UNIT_LIST.join('|');
42
- return Object.assign({ valid,
43
- customExpectedType }, ERROR_DICTIONARY[ERROR_LIST.customDateDifParams]);
41
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.customDateDifParams]), { info: {
42
+ allowedValues: YMD_UNIT_LIST,
43
+ } });
44
44
  }
45
45
  return { valid };
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,uBACI,KAAK;YACL,kBAAkB,IACf,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,EACrD;KACL;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CACf,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE;QACR,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,KACnD,IAAI,EAAE;gBACF,aAAa,EAAE,aAAa;aAC/B,IACH;KACL;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CACf,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AST_PRIMITIVES } from '../constants';
2
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
2
3
  import { isBooleanExpression } from '../utils/isBooleanExpression';
3
- import { inferPrimitive } from '../utils/primitiveFunctions';
4
+ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
4
5
  /**
5
6
  * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
6
7
  */
@@ -16,13 +17,13 @@ export const IF = {
16
17
  identifier: 'VALUE_IF_TRUE',
17
18
  optional: false,
18
19
  generic: true,
19
- validator: [],
20
+ validator: [samePrimitiveType],
20
21
  },
21
22
  {
22
23
  identifier: 'VALUE_IF_FALSE',
23
24
  optional: false,
24
25
  generic: true,
25
- validator: [],
26
+ validator: [samePrimitiveType],
26
27
  },
27
28
  ],
28
29
  transpiler: {
@@ -31,7 +32,6 @@ export const IF = {
31
32
  redshift,
32
33
  postgresql,
33
34
  },
34
- maxPrimitiveValues: 1,
35
35
  primitiveResult(args) {
36
36
  var _a, _b, _c, _d;
37
37
  const truePrimitive = (_b = (_a = args === null || args === void 0 ? void 0 : args[1]) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : AST_PRIMITIVES.UNKNOWN;
@@ -41,6 +41,29 @@ export const IF = {
41
41
  return inferPrimitive(truePrimitive, falsePrimitive);
42
42
  },
43
43
  };
44
+ function samePrimitiveType(_param, _dataType, context) {
45
+ var _a, _b, _c, _d;
46
+ const fPrimitive = (_b = (_a = context.fnNode.arguments) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.primitive;
47
+ const firstPrimitive = fPrimitive && isSinglePrimitive(fPrimitive)
48
+ ? fPrimitive
49
+ : AST_PRIMITIVES.UNKNOWN;
50
+ const sPrimitive = (_d = (_c = context.fnNode.arguments) === null || _c === void 0 ? void 0 : _c[2]) === null || _d === void 0 ? void 0 : _d.primitive;
51
+ const secondPrimitive = sPrimitive && isSinglePrimitive(sPrimitive)
52
+ ? sPrimitive
53
+ : AST_PRIMITIVES.UNKNOWN;
54
+ const ifPrimitive = calculateIfPrimitive(firstPrimitive, secondPrimitive);
55
+ const valid = firstPrimitive === secondPrimitive;
56
+ if (!valid)
57
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
58
+ primitive: ifPrimitive,
59
+ } });
60
+ return { valid };
61
+ }
62
+ function calculateIfPrimitive(firstPrimitive, secondPrimitive) {
63
+ if (firstPrimitive !== AST_PRIMITIVES.UNKNOWN)
64
+ return firstPrimitive;
65
+ return secondPrimitive;
66
+ }
44
67
  function elasticsearch(logicalExpression, valueIfTrue, valueIfFalse) {
45
68
  return `(${logicalExpression} ? ${valueIfTrue} : ${valueIfFalse})`;
46
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,kBAAkB,EAAE,CAAC;IACrB,eAAe,CAAC,IAAiB;;QAC7B,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO,CAAC;QACrE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QACpD,IAAI,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAC1C,OAAO,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,YAAY,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,YAAY,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,GAAG,CACR,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY;KAClB,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
1
3
  import { isBooleanExpression } from '../utils/isBooleanExpression';
2
- import { inferPrimitive } from '../utils/primitiveFunctions';
4
+ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
3
5
  /**
4
6
  * `IFS` Returns one value if a logical expression is TRUE
5
7
  * when is False another logical expression have to be set with their returned value
@@ -18,7 +20,7 @@ export const IFS = {
18
20
  identifier: 'VALUE_IF_TRUE',
19
21
  optional: false,
20
22
  generic: true,
21
- validator: [],
23
+ validator: [sameRecursivePrimitiveType],
22
24
  },
23
25
  ],
24
26
  transpiler: {
@@ -27,17 +29,41 @@ export const IFS = {
27
29
  redshift,
28
30
  postgresql,
29
31
  },
30
- maxPrimitiveValues: 1,
31
32
  primitiveResult(args) {
32
- const primitiveArgs = [];
33
- args.forEach((value, index) => {
34
- if (index % 2 === 1) {
35
- primitiveArgs.push(value.primitive);
36
- }
37
- });
38
- return inferPrimitive(...primitiveArgs);
33
+ return calculateIfsPrimitive(args);
39
34
  },
40
35
  };
36
+ function sameRecursivePrimitiveType(_param, _dataType, context) {
37
+ const args = context.fnNode.arguments;
38
+ const firstArgsPrimitive = calculateFirstIFSPrimitive(args);
39
+ const ifsPrimitive = calculateIfsPrimitive(args);
40
+ const valid = isSinglePrimitive(ifsPrimitive);
41
+ if (!valid)
42
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
43
+ primitive: firstArgsPrimitive,
44
+ } });
45
+ return {
46
+ valid,
47
+ mismatchData: {
48
+ primitive: ifsPrimitive,
49
+ },
50
+ };
51
+ }
52
+ function calculateIfsPrimitive(args) {
53
+ const primitiveArgs = [];
54
+ args.forEach((value, index) => {
55
+ if (index % 2 === 1) {
56
+ primitiveArgs.push(value.primitive);
57
+ }
58
+ });
59
+ return inferPrimitive(...primitiveArgs);
60
+ }
61
+ function calculateFirstIFSPrimitive(args) {
62
+ var _a, _b;
63
+ return ((_b = (_a = args.find((arg, index) => index % 2 === 1 &&
64
+ isSinglePrimitive(arg.primitive) &&
65
+ arg.primitive !== AST_PRIMITIVES.UNKNOWN)) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : AST_PRIMITIVES.UNKNOWN);
66
+ }
41
67
  function elasticsearch(...args) {
42
68
  const _args = [...args];
43
69
  const logicalExpression = _args.shift();