@qrvey/formula-lang 0.11.5 → 2.0.1-post-mvp-001

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 (123) hide show
  1. package/dist/cjs/constants/interfaces.d.ts +4 -1
  2. package/dist/cjs/errors/dictionary.d.ts +2 -2
  3. package/dist/cjs/errors/dictionary.js +5 -5
  4. package/dist/cjs/errors/dictionary.js.map +1 -1
  5. package/dist/cjs/functions/and.d.ts +5 -0
  6. package/dist/cjs/functions/and.js +54 -0
  7. package/dist/cjs/functions/and.js.map +1 -0
  8. package/dist/cjs/functions/concatenate.d.ts +5 -0
  9. package/dist/cjs/functions/concatenate.js +55 -0
  10. package/dist/cjs/functions/concatenate.js.map +1 -0
  11. package/dist/cjs/functions/dateadd.d.ts +5 -0
  12. package/dist/cjs/functions/dateadd.js +89 -0
  13. package/dist/cjs/functions/dateadd.js.map +1 -0
  14. package/dist/cjs/functions/datedif.js +2 -13
  15. package/dist/cjs/functions/datedif.js.map +1 -1
  16. package/dist/cjs/functions/dayofweek.d.ts +5 -0
  17. package/dist/cjs/functions/dayofweek.js +88 -0
  18. package/dist/cjs/functions/dayofweek.js.map +1 -0
  19. package/dist/cjs/functions/index.js +22 -0
  20. package/dist/cjs/functions/index.js.map +1 -1
  21. package/dist/cjs/functions/left.d.ts +5 -0
  22. package/dist/cjs/functions/left.js +54 -0
  23. package/dist/cjs/functions/left.js.map +1 -0
  24. package/dist/cjs/functions/lower.d.ts +5 -0
  25. package/dist/cjs/functions/lower.js +41 -0
  26. package/dist/cjs/functions/lower.js.map +1 -0
  27. package/dist/cjs/functions/mid.js +2 -33
  28. package/dist/cjs/functions/mid.js.map +1 -1
  29. package/dist/cjs/functions/or.d.ts +5 -0
  30. package/dist/cjs/functions/or.js +52 -0
  31. package/dist/cjs/functions/or.js.map +1 -0
  32. package/dist/cjs/functions/proper.d.ts +5 -0
  33. package/dist/cjs/functions/proper.js +38 -0
  34. package/dist/cjs/functions/proper.js.map +1 -0
  35. package/dist/cjs/functions/right.d.ts +5 -0
  36. package/dist/cjs/functions/right.js +55 -0
  37. package/dist/cjs/functions/right.js.map +1 -0
  38. package/dist/cjs/functions/trim.d.ts +5 -0
  39. package/dist/cjs/functions/trim.js +41 -0
  40. package/dist/cjs/functions/trim.js.map +1 -0
  41. package/dist/cjs/functions/upper.d.ts +5 -0
  42. package/dist/cjs/functions/upper.js +41 -0
  43. package/dist/cjs/functions/upper.js.map +1 -0
  44. package/dist/cjs/transpiler/index.js +4 -2
  45. package/dist/cjs/transpiler/index.js.map +1 -1
  46. package/dist/cjs/utils/elasticsearch/index.js +4 -0
  47. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  48. package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -0
  49. package/dist/cjs/utils/elasticsearch/scripts.js +20 -1
  50. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  51. package/dist/cjs/utils/escapeCharacters.d.ts +2 -0
  52. package/dist/cjs/utils/escapeCharacters.js +39 -0
  53. package/dist/cjs/utils/escapeCharacters.js.map +1 -0
  54. package/dist/cjs/utils/greaterThanZero.d.ts +3 -0
  55. package/dist/cjs/utils/greaterThanZero.js +38 -0
  56. package/dist/cjs/utils/greaterThanZero.js.map +1 -0
  57. package/dist/cjs/utils/index.js +1 -1
  58. package/dist/cjs/utils/index.js.map +1 -1
  59. package/dist/cjs/utils/isAnAllowedValue.d.ts +2 -0
  60. package/dist/cjs/utils/isAnAllowedValue.js +20 -0
  61. package/dist/cjs/utils/isAnAllowedValue.js.map +1 -0
  62. package/dist/module/constants/interfaces.d.ts +4 -1
  63. package/dist/module/errors/dictionary.d.ts +2 -2
  64. package/dist/module/errors/dictionary.js +5 -5
  65. package/dist/module/errors/dictionary.js.map +1 -1
  66. package/dist/module/functions/and.d.ts +5 -0
  67. package/dist/module/functions/and.js +51 -0
  68. package/dist/module/functions/and.js.map +1 -0
  69. package/dist/module/functions/concatenate.d.ts +5 -0
  70. package/dist/module/functions/concatenate.js +52 -0
  71. package/dist/module/functions/concatenate.js.map +1 -0
  72. package/dist/module/functions/dateadd.d.ts +5 -0
  73. package/dist/module/functions/dateadd.js +86 -0
  74. package/dist/module/functions/dateadd.js.map +1 -0
  75. package/dist/module/functions/datedif.js +2 -13
  76. package/dist/module/functions/datedif.js.map +1 -1
  77. package/dist/module/functions/dayofweek.d.ts +5 -0
  78. package/dist/module/functions/dayofweek.js +85 -0
  79. package/dist/module/functions/dayofweek.js.map +1 -0
  80. package/dist/module/functions/index.js +22 -0
  81. package/dist/module/functions/index.js.map +1 -1
  82. package/dist/module/functions/left.d.ts +5 -0
  83. package/dist/module/functions/left.js +51 -0
  84. package/dist/module/functions/left.js.map +1 -0
  85. package/dist/module/functions/lower.d.ts +5 -0
  86. package/dist/module/functions/lower.js +38 -0
  87. package/dist/module/functions/lower.js.map +1 -0
  88. package/dist/module/functions/mid.js +2 -33
  89. package/dist/module/functions/mid.js.map +1 -1
  90. package/dist/module/functions/or.d.ts +5 -0
  91. package/dist/module/functions/or.js +49 -0
  92. package/dist/module/functions/or.js.map +1 -0
  93. package/dist/module/functions/proper.d.ts +5 -0
  94. package/dist/module/functions/proper.js +35 -0
  95. package/dist/module/functions/proper.js.map +1 -0
  96. package/dist/module/functions/right.d.ts +5 -0
  97. package/dist/module/functions/right.js +52 -0
  98. package/dist/module/functions/right.js.map +1 -0
  99. package/dist/module/functions/trim.d.ts +5 -0
  100. package/dist/module/functions/trim.js +38 -0
  101. package/dist/module/functions/trim.js.map +1 -0
  102. package/dist/module/functions/upper.d.ts +5 -0
  103. package/dist/module/functions/upper.js +38 -0
  104. package/dist/module/functions/upper.js.map +1 -0
  105. package/dist/module/transpiler/index.js +4 -2
  106. package/dist/module/transpiler/index.js.map +1 -1
  107. package/dist/module/utils/elasticsearch/index.js +5 -1
  108. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  109. package/dist/module/utils/elasticsearch/scripts.d.ts +1 -0
  110. package/dist/module/utils/elasticsearch/scripts.js +19 -0
  111. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  112. package/dist/module/utils/escapeCharacters.d.ts +2 -0
  113. package/dist/module/utils/escapeCharacters.js +35 -0
  114. package/dist/module/utils/escapeCharacters.js.map +1 -0
  115. package/dist/module/utils/greaterThanZero.d.ts +3 -0
  116. package/dist/module/utils/greaterThanZero.js +34 -0
  117. package/dist/module/utils/greaterThanZero.js.map +1 -0
  118. package/dist/module/utils/index.js +1 -1
  119. package/dist/module/utils/index.js.map +1 -1
  120. package/dist/module/utils/isAnAllowedValue.d.ts +2 -0
  121. package/dist/module/utils/isAnAllowedValue.js +16 -0
  122. package/dist/module/utils/isAnAllowedValue.js.map +1 -0
  123. package/package.json +1 -1
@@ -130,5 +130,8 @@ interface TimezoneDefinition {
130
130
  offset: string;
131
131
  }
132
132
  export type VariableASTType = AST_TYPES.variable | AST_TYPES.column | AST_TYPES.token;
133
- export type DateDifUnitParam = 'Y' | 'M' | 'D';
133
+ export type DateUnit = 'Y' | 'M' | 'D';
134
+ export type DateDifUnitParam = DateUnit;
135
+ export type DateTimeUnit = DateUnit | 'H' | 'MI' | 'S';
136
+ export type DayOfWeekFormat = 'Day' | 'D';
134
137
  export {};
@@ -10,7 +10,6 @@ export declare enum ERROR_LIST {
10
10
  missingParenthesis = "missingParenthesis",
11
11
  unknownFunction = "unknownFunction",
12
12
  unknown = "unknown",
13
- customDateDifParams = "customDateDifParams",
14
13
  tooManyArguments = "tooManyArguments",
15
14
  unknownToken = "unknownToken",
16
15
  notAllowedOperation = "notAllowedOperation",
@@ -20,7 +19,8 @@ export declare enum ERROR_LIST {
20
19
  booleanExpression = "booleanExpression",
21
20
  missingColumnExpression = "missingColumnExpression",
22
21
  noColumnExpression = "noColumnExpression",
23
- functionArgumentsMismatch = "functionArgumentsMismatch"
22
+ functionArgumentsMismatch = "functionArgumentsMismatch",
23
+ invalidAllowValue = "invalidAllowValue"
24
24
  }
25
25
  type ErrorsType = {
26
26
  [key in ERROR_LIST]: ErrorDictionary;
@@ -14,7 +14,6 @@ var ERROR_LIST;
14
14
  ERROR_LIST["missingParenthesis"] = "missingParenthesis";
15
15
  ERROR_LIST["unknownFunction"] = "unknownFunction";
16
16
  ERROR_LIST["unknown"] = "unknown";
17
- ERROR_LIST["customDateDifParams"] = "customDateDifParams";
18
17
  ERROR_LIST["tooManyArguments"] = "tooManyArguments";
19
18
  ERROR_LIST["unknownToken"] = "unknownToken";
20
19
  ERROR_LIST["notAllowedOperation"] = "notAllowedOperation";
@@ -25,6 +24,7 @@ var ERROR_LIST;
25
24
  ERROR_LIST["missingColumnExpression"] = "missingColumnExpression";
26
25
  ERROR_LIST["noColumnExpression"] = "noColumnExpression";
27
26
  ERROR_LIST["functionArgumentsMismatch"] = "functionArgumentsMismatch";
27
+ ERROR_LIST["invalidAllowValue"] = "invalidAllowValue";
28
28
  })(ERROR_LIST = exports.ERROR_LIST || (exports.ERROR_LIST = {}));
29
29
  exports.ERROR_DICTIONARY = {
30
30
  [ERROR_LIST.arguments]: {
@@ -79,10 +79,6 @@ exports.ERROR_DICTIONARY = {
79
79
  message: 'Too many arguments',
80
80
  code: 'TOO_MANY_ARGUMENTS',
81
81
  },
82
- [ERROR_LIST.customDateDifParams]: {
83
- message: 'Unit param have to be equal to: "Y", "M", "D"',
84
- code: 'DATE_DIF_UNIT_PARAM',
85
- },
86
82
  [ERROR_LIST.notAllowedOperation]: {
87
83
  message: 'Operation not allowed',
88
84
  code: 'NOT_ALLOWED_OPERATION',
@@ -115,5 +111,9 @@ exports.ERROR_DICTIONARY = {
115
111
  message: 'Function arguments mismatch.',
116
112
  code: 'FUNCTION_ARGUMENTS_MISMATCH',
117
113
  },
114
+ [ERROR_LIST.invalidAllowValue]: {
115
+ message: 'Argument have to be equal to:',
116
+ code: 'INVALID_ALLOW_VALUE',
117
+ },
118
118
  };
119
119
  //# sourceMappingURL=dictionary.js.map
@@ -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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"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `AND` Returns true if all expressions are truthy; otherwise, it will return false.
4
+ */
5
+ export declare const AND: FunctionDefinition;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AND = void 0;
4
+ const constants_1 = require("../constants");
5
+ const isBooleanExpression_1 = require("../utils/isBooleanExpression");
6
+ /**
7
+ * `AND` Returns true if all expressions are truthy; otherwise, it will return false.
8
+ */
9
+ exports.AND = {
10
+ identifier: 'AND',
11
+ recursiveStartIn: 1,
12
+ parameters: [
13
+ {
14
+ identifier: 'LOGICAL_EXPRESSION',
15
+ optional: false,
16
+ validator: [isBooleanExpression_1.isBooleanExpression],
17
+ },
18
+ {
19
+ identifier: 'LOGICAL_EXPRESSION',
20
+ optional: false,
21
+ validator: [isBooleanExpression_1.isBooleanExpression],
22
+ },
23
+ {
24
+ identifier: 'LOGICAL_EXPRESSION',
25
+ optional: true,
26
+ validator: [isBooleanExpression_1.isBooleanExpression],
27
+ },
28
+ ],
29
+ transpiler: {
30
+ elasticsearch,
31
+ snowflake,
32
+ redshift,
33
+ postgresql,
34
+ },
35
+ primitiveResult(args) {
36
+ return constants_1.AST_PRIMITIVES.BOOLEAN;
37
+ },
38
+ };
39
+ function elasticsearch(...args) {
40
+ return `(${args.join(' && ')})`;
41
+ }
42
+ function sql(...args) {
43
+ return `(${args.join(' AND ')})`;
44
+ }
45
+ function snowflake(...args) {
46
+ return sql(...args);
47
+ }
48
+ function redshift(...args) {
49
+ return sql(...args);
50
+ }
51
+ function postgresql(...args) {
52
+ return sql(...args);
53
+ }
54
+ //# sourceMappingURL=and.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"and.js","sourceRoot":"","sources":["../../../src/functions/and.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAE9C,sEAAmE;AAEnE;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,yCAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,yCAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,yCAAmB,CAAC;SACnC;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,0BAAc,CAAC,OAAO,CAAC;IAClC,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `CONCATENATE` Joins two or more strings into one string.
4
+ */
5
+ export declare const CONCATENATE: FunctionDefinition;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONCATENATE = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * `CONCATENATE` Joins two or more strings into one string.
8
+ */
9
+ exports.CONCATENATE = {
10
+ identifier: 'CONCATENATE',
11
+ recursiveStartIn: 1,
12
+ parameters: [
13
+ {
14
+ identifier: 'STRING_1',
15
+ optional: false,
16
+ validator: [utils_1.isStringParam],
17
+ },
18
+ {
19
+ identifier: 'STRING_2',
20
+ optional: false,
21
+ validator: [utils_1.isStringParam],
22
+ },
23
+ {
24
+ identifier: 'STRING_N',
25
+ optional: true,
26
+ validator: [utils_1.isStringParam],
27
+ },
28
+ ],
29
+ transpiler: {
30
+ elasticsearch,
31
+ snowflake,
32
+ redshift,
33
+ postgresql,
34
+ },
35
+ primitiveResult(args) {
36
+ return constants_1.AST_PRIMITIVES.BOOLEAN;
37
+ },
38
+ };
39
+ function elasticsearch(...args) {
40
+ return `(${args.join(' + ')})`;
41
+ }
42
+ function sql(...args) {
43
+ return `CONCAT(${args.join(', ')})`;
44
+ }
45
+ function snowflake(...args) {
46
+ return sql(...args);
47
+ }
48
+ // Redshift also support CONCAT function but when the string to concatenate is a space only thrown an error
49
+ function redshift(...args) {
50
+ return `(${args.join(' || ')})`;
51
+ }
52
+ function postgresql(...args) {
53
+ return sql(...args);
54
+ }
55
+ //# sourceMappingURL=concatenate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concatenate.js","sourceRoot":"","sources":["../../../src/functions/concatenate.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAE9C,oCAAyC;AAEzC;;GAEG;AACU,QAAA,WAAW,GAAuB;IAC3C,UAAU,EAAE,aAAa;IACzB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,0BAAc,CAAC,OAAO,CAAC;IAClC,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AACD,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `DATEADD` Adds a specific date part value to a given date.
4
+ */
5
+ export declare const DATEADD: FunctionDefinition;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DATEADD = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ const greaterThanZero_1 = require("../utils/greaterThanZero");
7
+ const isAnAllowedValue_1 = require("../utils/isAnAllowedValue");
8
+ /**
9
+ * `DATEADD` Adds a specific date part value to a given date.
10
+ */
11
+ exports.DATEADD = {
12
+ identifier: 'DATEADD',
13
+ parameters: [
14
+ {
15
+ identifier: 'DATE',
16
+ optional: false,
17
+ validator: [utils_1.isDateParam],
18
+ },
19
+ {
20
+ identifier: 'UNIT',
21
+ optional: false,
22
+ validator: [
23
+ utils_1.isStringParam,
24
+ (0, isAnAllowedValue_1.isAnAllowedValue)(['Y', 'M', 'D', 'H', 'MI', 'S']),
25
+ ],
26
+ },
27
+ {
28
+ identifier: 'INTERVAL',
29
+ optional: false,
30
+ validator: [utils_1.isNumberParam, greaterThanZero_1.greaterThanZero],
31
+ },
32
+ ],
33
+ transpiler: {
34
+ elasticsearch,
35
+ snowflake,
36
+ redshift,
37
+ postgresql,
38
+ },
39
+ primitiveResult: constants_1.AST_PRIMITIVES.DATE,
40
+ };
41
+ function elasticsearch(date, unit, interval) {
42
+ unit = (0, utils_1.removeQuotes)(unit);
43
+ switch (unit) {
44
+ case 'Y':
45
+ return `${date}.plusYears(${interval})`;
46
+ case 'M':
47
+ return `${date}.plusMonths(${interval})`;
48
+ case 'D':
49
+ return `${date}.plusDays(${interval})`;
50
+ case 'H':
51
+ return `${date}.plusHours(${interval})`;
52
+ case 'MI':
53
+ return `${date}.plusMinutes(${interval})`;
54
+ case 'S':
55
+ return `${date}.plusSeconds(${interval})`;
56
+ default:
57
+ return '';
58
+ }
59
+ }
60
+ function SQL(date, unit, interval) {
61
+ unit = (0, utils_1.removeQuotes)(unit);
62
+ const sqlDateAdd = (date, unit) => `${date} + interval '${unit}'`;
63
+ switch (unit) {
64
+ case 'Y':
65
+ return sqlDateAdd(date, `${interval} year`);
66
+ case 'M':
67
+ return sqlDateAdd(date, `${interval} month`);
68
+ case 'D':
69
+ return sqlDateAdd(date, `${interval} day`);
70
+ case 'H':
71
+ return sqlDateAdd(date, `${interval} hour`);
72
+ case 'MI':
73
+ return sqlDateAdd(date, `${interval} minute`);
74
+ case 'S':
75
+ return sqlDateAdd(date, `${interval} second`);
76
+ default:
77
+ return '';
78
+ }
79
+ }
80
+ function snowflake(date, unit, interval) {
81
+ return SQL(date, unit, interval);
82
+ }
83
+ function redshift(date, unit, interval) {
84
+ return SQL(date, unit, interval);
85
+ }
86
+ function postgresql(date, unit, interval) {
87
+ return SQL(date, unit, interval);
88
+ }
89
+ //# sourceMappingURL=dateadd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateadd.js","sourceRoot":"","sources":["../../../src/functions/dateadd.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DATEDIF = void 0;
4
4
  const constants_1 = require("../constants");
5
- const dictionary_1 = require("../errors/dictionary");
6
5
  const scripts_1 = require("../utils/elasticsearch/scripts");
7
6
  const scripts_2 = require("../utils/sql/scripts");
8
7
  const utils_1 = require("../utils");
8
+ const isAnAllowedValue_1 = require("../utils/isAnAllowedValue");
9
9
  /**
10
10
  * Returns the number of the DATEDIF in a Date.
11
11
  */
@@ -25,7 +25,7 @@ exports.DATEDIF = {
25
25
  {
26
26
  identifier: 'UNIT',
27
27
  optional: false,
28
- validator: [utils_1.isStringParam, customValidatorYMD],
28
+ validator: [utils_1.isStringParam, (0, isAnAllowedValue_1.isAnAllowedValue)(['Y', 'M', 'D'])],
29
29
  },
30
30
  ],
31
31
  transpiler: {
@@ -36,17 +36,6 @@ exports.DATEDIF = {
36
36
  },
37
37
  primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
38
38
  };
39
- const YMD_UNIT_LIST = ['Y', 'M', 'D'];
40
- function customValidatorYMD(param) {
41
- param = (0, utils_1.removeQuotes)(param);
42
- const valid = YMD_UNIT_LIST.includes(param);
43
- if (!valid) {
44
- return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.customDateDifParams]), { info: {
45
- allowedValues: YMD_UNIT_LIST,
46
- } });
47
- }
48
- return { valid };
49
- }
50
39
  function elasticsearch(start, end, unit) {
51
40
  unit = (0, utils_1.removeQuotes)(unit);
52
41
  return (0, scripts_1.dateDif)(start, end, unit);
@@ -1 +1 @@
1
- {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":";;;AAKA,4CAA8C;AAC9C,qDAAoE;AACpE,4DAAsE;AACtE,kDAA8E;AAC9E,oCAAoE;AAEpE;;GAEG;AACU,QAAA,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE;QACR,qCACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,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,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAU,EAAC,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,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,yBAAe,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAC9C,4DAAsE;AACtE,kDAA8E;AAC9E,oCAAoE;AACpE,gEAA6D;AAE7D;;GAEG;AACU,QAAA,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,EAAE,IAAA,mCAAgB,EAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SAChE;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAS,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,iBAAU,EAAC,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,IAAA,oBAAY,EAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,IAAA,yBAAe,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `DAYOFWEEK` Returns a number or string representative of the weekday for a given date.
4
+ */
5
+ export declare const DAYOFWEEK: FunctionDefinition;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DAYOFWEEK = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ const isAnAllowedValue_1 = require("../utils/isAnAllowedValue");
7
+ /**
8
+ * `DAYOFWEEK` Returns a number or string representative of the weekday for a given date.
9
+ */
10
+ exports.DAYOFWEEK = {
11
+ identifier: 'DAYOFWEEK',
12
+ parameters: [
13
+ {
14
+ identifier: 'DATE',
15
+ optional: false,
16
+ validator: [utils_1.isDateParam],
17
+ },
18
+ {
19
+ identifier: 'FORMAT',
20
+ optional: true,
21
+ validator: [utils_1.isStringParam, (0, isAnAllowedValue_1.isAnAllowedValue)(['Day', 'D'])],
22
+ },
23
+ ],
24
+ transpiler: {
25
+ elasticsearch,
26
+ snowflake,
27
+ redshift,
28
+ postgresql,
29
+ },
30
+ primitiveResult(args) {
31
+ var _a;
32
+ const argument = args === null || args === void 0 ? void 0 : args[1];
33
+ const format = (_a = argument === null || argument === void 0 ? void 0 : argument.value) !== null && _a !== void 0 ? _a : 'D';
34
+ if (format === 'Day')
35
+ return constants_1.AST_PRIMITIVES.STRING;
36
+ return constants_1.AST_PRIMITIVES.NUMBER;
37
+ },
38
+ };
39
+ function elasticsearch(date, format) {
40
+ let _format = format !== null && format !== void 0 ? format : 'D';
41
+ _format = (0, utils_1.removeQuotes)(_format);
42
+ switch (_format) {
43
+ case 'D':
44
+ return `((${date}.getDayOfWeek().getValue() % 7) + 1)`;
45
+ case 'Day':
46
+ return `${date}.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH)`;
47
+ default:
48
+ return '';
49
+ }
50
+ }
51
+ function SQL(date, format) {
52
+ let _format = format !== null && format !== void 0 ? format : 'D';
53
+ _format = (0, utils_1.removeQuotes)(_format);
54
+ switch (_format) {
55
+ case 'Day':
56
+ return `TO_CHAR(${date}, 'Day')`;
57
+ case 'D':
58
+ return `TO_CHAR(${date}, 'D')`;
59
+ default:
60
+ return '';
61
+ }
62
+ }
63
+ function snowflake(date, format) {
64
+ let _format = format !== null && format !== void 0 ? format : 'D';
65
+ _format = (0, utils_1.removeQuotes)(_format);
66
+ switch (_format) {
67
+ case 'Day':
68
+ return `DECODE(EXTRACT('dayofweek_iso', ${date}),
69
+ 1, 'Monday',
70
+ 2, 'Tuesday',
71
+ 3, 'Wednesday',
72
+ 4, 'Thursday',
73
+ 5, 'Friday',
74
+ 6, 'Saturday',
75
+ 7, 'Sunday')`;
76
+ case 'D':
77
+ return `DAYOFWEEK(${date}) + 1`;
78
+ default:
79
+ return '';
80
+ }
81
+ }
82
+ function redshift(date, format) {
83
+ return SQL(date, format);
84
+ }
85
+ function postgresql(date, format) {
86
+ return SQL(date, format);
87
+ }
88
+ //# sourceMappingURL=dayofweek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dayofweek.js","sourceRoot":"","sources":["../../../src/functions/dayofweek.ts"],"names":[],"mappings":";;;AAMA,4CAA8C;AAC9C,oCAAoE;AACpE,gEAA6D;AAE7D;;GAEG;AACU,QAAA,SAAS,GAAuB;IACzC,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,qBAAa,EAAE,IAAA,mCAAgB,EAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAC7D;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;;QAC7B,MAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAmB,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,GAAG,CAAC;QACtC,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,0BAAc,CAAC,MAAM,CAAC;QACnD,OAAO,0BAAc,CAAC,MAAM,CAAC;IACjC,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,IAAY,EAAE,MAAuB;IACxD,IAAI,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,GAAG,CAAC;IAC5B,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAoB,CAAC;IAEnD,QAAQ,OAAO,EAAE;QACb,KAAK,GAAG;YACJ,OAAO,KAAK,IAAI,sCAAsC,CAAC;QAC3D,KAAK,KAAK;YACN,OAAO,GAAG,IAAI,gEAAgE,CAAC;QACnF;YACI,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,SAAS,GAAG,CAAC,IAAY,EAAE,MAAuB;IAC9C,IAAI,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,GAAG,CAAC;IAC5B,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAoB,CAAC;IAEnD,QAAQ,OAAO,EAAE;QACb,KAAK,KAAK;YACN,OAAO,WAAW,IAAI,UAAU,CAAC;QACrC,KAAK,GAAG;YACJ,OAAO,WAAW,IAAI,QAAQ,CAAC;QACnC;YACI,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAuB;IACpD,IAAI,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,GAAG,CAAC;IAC5B,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAoB,CAAC;IAEnD,QAAQ,OAAO,EAAE;QACb,KAAK,KAAK;YACN,OAAO,mCAAmC,IAAI;;;;;;;yBAOjC,CAAC;QAClB,KAAK,GAAG;YACJ,OAAO,aAAa,IAAI,OAAO,CAAC;QACpC;YACI,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAuB;IACnD,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAuB;IACrD,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -13,6 +13,17 @@ const second_1 = require("./second");
13
13
  const if_1 = require("./if");
14
14
  const ifs_1 = require("./ifs");
15
15
  const isNull_1 = require("./isNull");
16
+ const and_1 = require("./and");
17
+ const or_1 = require("./or");
18
+ const concatenate_1 = require("./concatenate");
19
+ const lower_1 = require("./lower");
20
+ const upper_1 = require("./upper");
21
+ const trim_1 = require("./trim");
22
+ const left_1 = require("./left");
23
+ const right_1 = require("./right");
24
+ const dateadd_1 = require("./dateadd");
25
+ const dayofweek_1 = require("./dayofweek");
26
+ const proper_1 = require("./proper");
16
27
  exports.functionList = {
17
28
  MID: mid_1.MID,
18
29
  ABS: abs_1.ABS,
@@ -26,6 +37,17 @@ exports.functionList = {
26
37
  IF: if_1.IF,
27
38
  IFS: ifs_1.IFS,
28
39
  ISNULL: isNull_1.ISNULL,
40
+ AND: and_1.AND,
41
+ OR: or_1.OR,
42
+ CONCATENATE: concatenate_1.CONCATENATE,
43
+ LOWER: lower_1.LOWER,
44
+ UPPER: upper_1.UPPER,
45
+ TRIM: trim_1.TRIM,
46
+ LEFT: left_1.LEFT,
47
+ RIGHT: right_1.RIGHT,
48
+ DATEADD: dateadd_1.DATEADD,
49
+ DAYOFWEEK: dayofweek_1.DAYOFWEEK,
50
+ PROPER: proper_1.PROPER,
29
51
  };
30
52
  exports.FUNCTION_LIST = Object.keys(exports.functionList);
31
53
  function getFunctionDetail(functionName) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAC5B,+BAA4B;AAC5B,uCAAoC;AACpC,+BAA4B;AAC5B,mCAAgC;AAChC,iCAA8B;AAC9B,iCAA8B;AAC9B,qCAAkC;AAClC,qCAAkC;AAClC,6BAA0B;AAC1B,+BAA4B;AAC5B,qCAAkC;AAErB,QAAA,YAAY,GAAiB;IACtC,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,SAAG;IACH,KAAK,EAAL,aAAK;IACL,IAAI,EAAJ,WAAI;IACJ,IAAI,EAAJ,WAAI;IACJ,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,EAAE,EAAF,OAAE;IACF,GAAG,EAAH,SAAG;IACH,MAAM,EAAN,eAAM;CACT,CAAC;AAEW,QAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAY,CAAC,CAAC;AAEvD,SAAgB,iBAAiB,CAC7B,YAAoB;IAEpB,OAAO,oBAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAJD,8CAIC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAC5B,+BAA4B;AAC5B,uCAAoC;AACpC,+BAA4B;AAC5B,mCAAgC;AAChC,iCAA8B;AAC9B,iCAA8B;AAC9B,qCAAkC;AAClC,qCAAkC;AAClC,6BAA0B;AAC1B,+BAA4B;AAC5B,qCAAkC;AAClC,+BAA4B;AAC5B,6BAA0B;AAC1B,+CAA4C;AAC5C,mCAAgC;AAChC,mCAAgC;AAChC,iCAA8B;AAC9B,iCAA8B;AAC9B,mCAAgC;AAChC,uCAAoC;AACpC,2CAAwC;AACxC,qCAAkC;AAErB,QAAA,YAAY,GAAiB;IACtC,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,OAAO,EAAP,iBAAO;IACP,GAAG,EAAH,SAAG;IACH,KAAK,EAAL,aAAK;IACL,IAAI,EAAJ,WAAI;IACJ,IAAI,EAAJ,WAAI;IACJ,MAAM,EAAN,eAAM;IACN,MAAM,EAAN,eAAM;IACN,EAAE,EAAF,OAAE;IACF,GAAG,EAAH,SAAG;IACH,MAAM,EAAN,eAAM;IACN,GAAG,EAAH,SAAG;IACH,EAAE,EAAF,OAAE;IACF,WAAW,EAAX,yBAAW;IACX,KAAK,EAAL,aAAK;IACL,KAAK,EAAL,aAAK;IACL,IAAI,EAAJ,WAAI;IACJ,IAAI,EAAJ,WAAI;IACJ,KAAK,EAAL,aAAK;IACL,OAAO,EAAP,iBAAO;IACP,SAAS,EAAT,qBAAS;IACT,MAAM,EAAN,eAAM;CACT,CAAC;AAEW,QAAA,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAY,CAAC,CAAC;AAEvD,SAAgB,iBAAiB,CAC7B,YAAoB;IAEpB,OAAO,oBAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAJD,8CAIC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `LEFT` Returns the first character or characters in a text string, based on the number of characters you specify.
4
+ */
5
+ export declare const LEFT: FunctionDefinition;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LEFT = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ const greaterThanZero_1 = require("../utils/greaterThanZero");
7
+ /**
8
+ * `LEFT` Returns the first character or characters in a text string, based on the number of characters you specify.
9
+ */
10
+ exports.LEFT = {
11
+ identifier: 'LEFT',
12
+ parameters: [
13
+ {
14
+ identifier: 'CURRENT',
15
+ optional: false,
16
+ validator: [utils_1.isStringParam],
17
+ },
18
+ {
19
+ identifier: 'EXTRACT_LENGTH',
20
+ optional: true,
21
+ validator: [utils_1.isNumberParam, greaterThanZero_1.greaterThanZero],
22
+ },
23
+ ],
24
+ transpiler: {
25
+ elasticsearch,
26
+ snowflake,
27
+ redshift,
28
+ postgresql,
29
+ },
30
+ primitiveResult: constants_1.AST_PRIMITIVES.STRING,
31
+ };
32
+ function elasticsearch(current, length) {
33
+ return `${constants_1.ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, 0, ${length !== null && length !== void 0 ? length : 1})`;
34
+ }
35
+ function snowflake(current, length) {
36
+ return `LEFT(${current}, ${length !== null && length !== void 0 ? length : 1})`;
37
+ }
38
+ function SQL(current, length) {
39
+ const _length = length !== null && length !== void 0 ? length : 1;
40
+ return `
41
+ (case
42
+ when (${_length} < 0) then ''
43
+ else
44
+ LEFT(${current}, ${_length})
45
+ end
46
+ )`.trim();
47
+ }
48
+ function redshift(current, length) {
49
+ return SQL(current, length);
50
+ }
51
+ function postgresql(current, length) {
52
+ return SQL(current, length);
53
+ }
54
+ //# sourceMappingURL=left.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":";;;AAAA,4CAA0E;AAE1E,oCAAwD;AACxD,8DAA2D;AAE3D;;GAEG;AACU,QAAA,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,qBAAa,EAAE,iCAAe,CAAC;SAC9C;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,GAAG,sCAA0B,CAAC,SAAS,IAAI,OAAO,QACrD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CACd,GAAG,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,QAAQ,OAAO,KAAK,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,MAAc;IACxC,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;IAC5B,OAAO;;UAED,OAAO;;eAEF,OAAO,KAAK,OAAO;;MAE5B,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAc;IAC7C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `LOWER` Returns the string give it in lower case.
4
+ */
5
+ export declare const LOWER: FunctionDefinition;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOWER = void 0;
4
+ const constants_1 = require("../constants");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * `LOWER` Returns the string give it in lower case.
8
+ */
9
+ exports.LOWER = {
10
+ identifier: 'LOWER',
11
+ parameters: [
12
+ {
13
+ identifier: 'STRING',
14
+ optional: false,
15
+ validator: [utils_1.isStringParam],
16
+ },
17
+ ],
18
+ transpiler: {
19
+ elasticsearch,
20
+ snowflake,
21
+ redshift,
22
+ postgresql,
23
+ },
24
+ primitiveResult: constants_1.AST_PRIMITIVES.STRING,
25
+ };
26
+ function elasticsearch(current) {
27
+ return `${current}.toLowerCase()`;
28
+ }
29
+ function SQL(current) {
30
+ return `LOWER(${current})`;
31
+ }
32
+ function snowflake(current) {
33
+ return SQL(current);
34
+ }
35
+ function redshift(current) {
36
+ return SQL(current);
37
+ }
38
+ function postgresql(current) {
39
+ return SQL(current);
40
+ }
41
+ //# sourceMappingURL=lower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAE9C,oCAAyC;AAEzC;;GAEG;AACU,QAAA,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,GAAG,OAAO,gBAAgB,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO,SAAS,OAAO,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}