@qrvey/formula-lang 0.11.4 → 1.0.0

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 (132) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/cjs/constants/interfaces.d.ts +4 -1
  3. package/dist/cjs/errors/dictionary.d.ts +2 -2
  4. package/dist/cjs/errors/dictionary.js +5 -5
  5. package/dist/cjs/errors/dictionary.js.map +1 -1
  6. package/dist/cjs/functions/and.d.ts +5 -0
  7. package/dist/cjs/functions/and.js +52 -0
  8. package/dist/cjs/functions/and.js.map +1 -0
  9. package/dist/cjs/functions/concatenate.d.ts +5 -0
  10. package/dist/cjs/functions/concatenate.js +53 -0
  11. package/dist/cjs/functions/concatenate.js.map +1 -0
  12. package/dist/cjs/functions/dateadd.d.ts +5 -0
  13. package/dist/cjs/functions/dateadd.js +89 -0
  14. package/dist/cjs/functions/dateadd.js.map +1 -0
  15. package/dist/cjs/functions/datedif.js +2 -13
  16. package/dist/cjs/functions/datedif.js.map +1 -1
  17. package/dist/cjs/functions/dayofweek.d.ts +5 -0
  18. package/dist/cjs/functions/dayofweek.js +88 -0
  19. package/dist/cjs/functions/dayofweek.js.map +1 -0
  20. package/dist/cjs/functions/if.js +5 -5
  21. package/dist/cjs/functions/if.js.map +1 -1
  22. package/dist/cjs/functions/index.js +22 -0
  23. package/dist/cjs/functions/index.js.map +1 -1
  24. package/dist/cjs/functions/isNull.js +5 -9
  25. package/dist/cjs/functions/isNull.js.map +1 -1
  26. package/dist/cjs/functions/left.d.ts +5 -0
  27. package/dist/cjs/functions/left.js +54 -0
  28. package/dist/cjs/functions/left.js.map +1 -0
  29. package/dist/cjs/functions/lower.d.ts +5 -0
  30. package/dist/cjs/functions/lower.js +41 -0
  31. package/dist/cjs/functions/lower.js.map +1 -0
  32. package/dist/cjs/functions/mid.js +19 -40
  33. package/dist/cjs/functions/mid.js.map +1 -1
  34. package/dist/cjs/functions/or.d.ts +5 -0
  35. package/dist/cjs/functions/or.js +52 -0
  36. package/dist/cjs/functions/or.js.map +1 -0
  37. package/dist/cjs/functions/proper.d.ts +5 -0
  38. package/dist/cjs/functions/proper.js +38 -0
  39. package/dist/cjs/functions/proper.js.map +1 -0
  40. package/dist/cjs/functions/right.d.ts +5 -0
  41. package/dist/cjs/functions/right.js +55 -0
  42. package/dist/cjs/functions/right.js.map +1 -0
  43. package/dist/cjs/functions/trim.d.ts +5 -0
  44. package/dist/cjs/functions/trim.js +41 -0
  45. package/dist/cjs/functions/trim.js.map +1 -0
  46. package/dist/cjs/functions/upper.d.ts +5 -0
  47. package/dist/cjs/functions/upper.js +41 -0
  48. package/dist/cjs/functions/upper.js.map +1 -0
  49. package/dist/cjs/transpiler/index.js +4 -2
  50. package/dist/cjs/transpiler/index.js.map +1 -1
  51. package/dist/cjs/utils/elasticsearch/index.js +4 -0
  52. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  53. package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -0
  54. package/dist/cjs/utils/elasticsearch/scripts.js +31 -7
  55. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  56. package/dist/cjs/utils/escapeCharacters.d.ts +2 -0
  57. package/dist/cjs/utils/escapeCharacters.js +39 -0
  58. package/dist/cjs/utils/escapeCharacters.js.map +1 -0
  59. package/dist/cjs/utils/greaterThanZero.d.ts +3 -0
  60. package/dist/cjs/utils/greaterThanZero.js +38 -0
  61. package/dist/cjs/utils/greaterThanZero.js.map +1 -0
  62. package/dist/cjs/utils/index.js +1 -1
  63. package/dist/cjs/utils/index.js.map +1 -1
  64. package/dist/cjs/utils/isAnAllowedValue.d.ts +2 -0
  65. package/dist/cjs/utils/isAnAllowedValue.js +20 -0
  66. package/dist/cjs/utils/isAnAllowedValue.js.map +1 -0
  67. package/dist/module/constants/interfaces.d.ts +4 -1
  68. package/dist/module/errors/dictionary.d.ts +2 -2
  69. package/dist/module/errors/dictionary.js +5 -5
  70. package/dist/module/errors/dictionary.js.map +1 -1
  71. package/dist/module/functions/and.d.ts +5 -0
  72. package/dist/module/functions/and.js +49 -0
  73. package/dist/module/functions/and.js.map +1 -0
  74. package/dist/module/functions/concatenate.d.ts +5 -0
  75. package/dist/module/functions/concatenate.js +50 -0
  76. package/dist/module/functions/concatenate.js.map +1 -0
  77. package/dist/module/functions/dateadd.d.ts +5 -0
  78. package/dist/module/functions/dateadd.js +86 -0
  79. package/dist/module/functions/dateadd.js.map +1 -0
  80. package/dist/module/functions/datedif.js +2 -13
  81. package/dist/module/functions/datedif.js.map +1 -1
  82. package/dist/module/functions/dayofweek.d.ts +5 -0
  83. package/dist/module/functions/dayofweek.js +85 -0
  84. package/dist/module/functions/dayofweek.js.map +1 -0
  85. package/dist/module/functions/if.js +5 -5
  86. package/dist/module/functions/if.js.map +1 -1
  87. package/dist/module/functions/index.js +22 -0
  88. package/dist/module/functions/index.js.map +1 -1
  89. package/dist/module/functions/isNull.js +5 -9
  90. package/dist/module/functions/isNull.js.map +1 -1
  91. package/dist/module/functions/left.d.ts +5 -0
  92. package/dist/module/functions/left.js +51 -0
  93. package/dist/module/functions/left.js.map +1 -0
  94. package/dist/module/functions/lower.d.ts +5 -0
  95. package/dist/module/functions/lower.js +38 -0
  96. package/dist/module/functions/lower.js.map +1 -0
  97. package/dist/module/functions/mid.js +19 -40
  98. package/dist/module/functions/mid.js.map +1 -1
  99. package/dist/module/functions/or.d.ts +5 -0
  100. package/dist/module/functions/or.js +49 -0
  101. package/dist/module/functions/or.js.map +1 -0
  102. package/dist/module/functions/proper.d.ts +5 -0
  103. package/dist/module/functions/proper.js +35 -0
  104. package/dist/module/functions/proper.js.map +1 -0
  105. package/dist/module/functions/right.d.ts +5 -0
  106. package/dist/module/functions/right.js +52 -0
  107. package/dist/module/functions/right.js.map +1 -0
  108. package/dist/module/functions/trim.d.ts +5 -0
  109. package/dist/module/functions/trim.js +38 -0
  110. package/dist/module/functions/trim.js.map +1 -0
  111. package/dist/module/functions/upper.d.ts +5 -0
  112. package/dist/module/functions/upper.js +38 -0
  113. package/dist/module/functions/upper.js.map +1 -0
  114. package/dist/module/transpiler/index.js +4 -2
  115. package/dist/module/transpiler/index.js.map +1 -1
  116. package/dist/module/utils/elasticsearch/index.js +5 -1
  117. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  118. package/dist/module/utils/elasticsearch/scripts.d.ts +1 -0
  119. package/dist/module/utils/elasticsearch/scripts.js +30 -6
  120. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  121. package/dist/module/utils/escapeCharacters.d.ts +2 -0
  122. package/dist/module/utils/escapeCharacters.js +35 -0
  123. package/dist/module/utils/escapeCharacters.js.map +1 -0
  124. package/dist/module/utils/greaterThanZero.d.ts +3 -0
  125. package/dist/module/utils/greaterThanZero.js +34 -0
  126. package/dist/module/utils/greaterThanZero.js.map +1 -0
  127. package/dist/module/utils/index.js +1 -1
  128. package/dist/module/utils/index.js.map +1 -1
  129. package/dist/module/utils/isAnAllowedValue.d.ts +2 -0
  130. package/dist/module/utils/isAnAllowedValue.js +16 -0
  131. package/dist/module/utils/isAnAllowedValue.js.map +1 -0
  132. package/package.json +1 -1
@@ -0,0 +1,85 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isDateParam, isStringParam, removeQuotes } from '../utils';
3
+ import { isAnAllowedValue } from '../utils/isAnAllowedValue';
4
+ /**
5
+ * `DAYOFWEEK` Returns a number or string representative of the weekday for a given date.
6
+ */
7
+ export const DAYOFWEEK = {
8
+ identifier: 'DAYOFWEEK',
9
+ parameters: [
10
+ {
11
+ identifier: 'DATE',
12
+ optional: false,
13
+ validator: [isDateParam],
14
+ },
15
+ {
16
+ identifier: 'FORMAT',
17
+ optional: true,
18
+ validator: [isStringParam, isAnAllowedValue(['Day', 'D'])],
19
+ },
20
+ ],
21
+ transpiler: {
22
+ elasticsearch,
23
+ snowflake,
24
+ redshift,
25
+ postgresql,
26
+ },
27
+ primitiveResult(args) {
28
+ var _a;
29
+ const argument = args === null || args === void 0 ? void 0 : args[1];
30
+ const format = (_a = argument === null || argument === void 0 ? void 0 : argument.value) !== null && _a !== void 0 ? _a : 'D';
31
+ if (format === 'Day')
32
+ return AST_PRIMITIVES.STRING;
33
+ return AST_PRIMITIVES.NUMBER;
34
+ },
35
+ };
36
+ function elasticsearch(date, format) {
37
+ let _format = format !== null && format !== void 0 ? format : 'D';
38
+ _format = removeQuotes(_format);
39
+ switch (_format) {
40
+ case 'D':
41
+ return `((${date}.getDayOfWeek().getValue() % 7) + 1)`;
42
+ case 'Day':
43
+ return `${date}.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH)`;
44
+ default:
45
+ return '';
46
+ }
47
+ }
48
+ function SQL(date, format) {
49
+ let _format = format !== null && format !== void 0 ? format : 'D';
50
+ _format = removeQuotes(_format);
51
+ switch (_format) {
52
+ case 'Day':
53
+ return `TO_CHAR(${date}, 'Day')`;
54
+ case 'D':
55
+ return `CAST(TO_CHAR(${date}, 'D') AS NUMERIC)`;
56
+ default:
57
+ return '';
58
+ }
59
+ }
60
+ function snowflake(date, format) {
61
+ let _format = format !== null && format !== void 0 ? format : 'D';
62
+ _format = removeQuotes(_format);
63
+ switch (_format) {
64
+ case 'Day':
65
+ return `DECODE(EXTRACT('dayofweek_iso', ${date}),
66
+ 1, 'Monday',
67
+ 2, 'Tuesday',
68
+ 3, 'Wednesday',
69
+ 4, 'Thursday',
70
+ 5, 'Friday',
71
+ 6, 'Saturday',
72
+ 7, 'Sunday')`;
73
+ case 'D':
74
+ return `DAYOFWEEK(${date}) + 1`;
75
+ default:
76
+ return '';
77
+ }
78
+ }
79
+ function redshift(date, format) {
80
+ return SQL(date, format);
81
+ }
82
+ function postgresql(date, format) {
83
+ return SQL(date, format);
84
+ }
85
+ //# sourceMappingURL=dayofweek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dayofweek.js","sourceRoot":"","sources":["../../../src/functions/dayofweek.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAuB;IACzC,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,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,cAAc,CAAC,MAAM,CAAC;QACnD,OAAO,cAAc,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,YAAY,CAAC,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,YAAY,CAAC,OAAO,CAAoB,CAAC;IAEnD,QAAQ,OAAO,EAAE;QACb,KAAK,KAAK;YACN,OAAO,WAAW,IAAI,UAAU,CAAC;QACrC,KAAK,GAAG;YACJ,OAAO,gBAAgB,IAAI,oBAAoB,CAAC;QACpD;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,YAAY,CAAC,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"}
@@ -34,20 +34,20 @@ export const IF = {
34
34
  },
35
35
  primitiveResult(args) {
36
36
  var _a, _b, _c, _d;
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;
38
- const falsePrimitive = (_d = (_c = args === null || args === void 0 ? void 0 : args[2]) === null || _c === void 0 ? void 0 : _c.primitive) !== null && _d !== void 0 ? _d : null;
37
+ const truePrimitive = (_b = (_a = args[1]) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : AST_PRIMITIVES.UNKNOWN;
38
+ const falsePrimitive = (_d = (_c = args[2]) === null || _c === void 0 ? void 0 : _c.primitive) !== null && _d !== void 0 ? _d : null;
39
39
  if (!falsePrimitive)
40
40
  return truePrimitive;
41
41
  return inferPrimitive(truePrimitive, falsePrimitive);
42
42
  },
43
43
  };
44
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;
45
+ var _a, _b;
46
+ const fPrimitive = (_a = context.fnNode.arguments[1]) === null || _a === void 0 ? void 0 : _a.primitive;
47
47
  const firstPrimitive = fPrimitive && isSinglePrimitive(fPrimitive)
48
48
  ? fPrimitive
49
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;
50
+ const sPrimitive = (_b = context.fnNode.arguments[2]) === null || _b === void 0 ? void 0 : _b.primitive;
51
51
  const secondPrimitive = sPrimitive && isSinglePrimitive(sPrimitive)
52
52
  ? sPrimitive
53
53
  : AST_PRIMITIVES.UNKNOWN;
@@ -1 +1 @@
1
- {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,17 @@ import { SECOND } from './second';
10
10
  import { IF } from './if';
11
11
  import { IFS } from './ifs';
12
12
  import { ISNULL } from './isNull';
13
+ import { AND } from './and';
14
+ import { OR } from './or';
15
+ import { CONCATENATE } from './concatenate';
16
+ import { LOWER } from './lower';
17
+ import { UPPER } from './upper';
18
+ import { TRIM } from './trim';
19
+ import { LEFT } from './left';
20
+ import { RIGHT } from './right';
21
+ import { DATEADD } from './dateadd';
22
+ import { DAYOFWEEK } from './dayofweek';
23
+ import { PROPER } from './proper';
13
24
  export const functionList = {
14
25
  MID,
15
26
  ABS,
@@ -23,6 +34,17 @@ export const functionList = {
23
34
  IF,
24
35
  IFS,
25
36
  ISNULL,
37
+ AND,
38
+ OR,
39
+ CONCATENATE,
40
+ LOWER,
41
+ UPPER,
42
+ TRIM,
43
+ LEFT,
44
+ RIGHT,
45
+ DATEADD,
46
+ DAYOFWEEK,
47
+ PROPER,
26
48
  };
27
49
  export const FUNCTION_LIST = Object.keys(functionList);
28
50
  export function getFunctionDetail(functionName) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACtC,GAAG;IACH,GAAG;IACH,OAAO;IACP,GAAG;IACH,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,EAAE;IACF,GAAG;IACH,MAAM;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAC7B,YAAoB;IAEpB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAiB;IACtC,GAAG;IACH,GAAG;IACH,OAAO;IACP,GAAG;IACH,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,EAAE;IACF,GAAG;IACH,MAAM;IACN,GAAG;IACH,EAAE;IACF,WAAW;IACX,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,OAAO;IACP,SAAS;IACT,MAAM;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAC7B,YAAoB;IAEpB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC"}
@@ -28,16 +28,14 @@ export const ISNULL = {
28
28
  postgresql,
29
29
  },
30
30
  primitiveResult(args) {
31
- return inferPrimitive(...(args || []).map((arg) => arg.primitive));
31
+ return inferPrimitive(...args.map((arg) => arg.primitive));
32
32
  },
33
33
  };
34
34
  function samePrimitiveTypeCol(param, dataType, context) {
35
35
  const isColumn = isAColumn(context);
36
36
  const baseResult = samePrimitiveType(param, dataType, context);
37
37
  const valid = isColumn && baseResult.valid;
38
- const primitive = baseResult.mismatchData
39
- ? baseResult.mismatchData.primitive
40
- : AST_PRIMITIVES.UNKNOWN;
38
+ const primitive = baseResult.mismatchData.primitive;
41
39
  return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
42
40
  type: AST_TYPES.column,
43
41
  primitive,
@@ -47,9 +45,7 @@ function samePrimitiveTypeNonCol(param, dataType, context) {
47
45
  const isLiteral = isALiteral(context);
48
46
  const baseResult = samePrimitiveType(param, dataType, context);
49
47
  const valid = isLiteral && baseResult.valid;
50
- const primitive = baseResult.mismatchData
51
- ? baseResult.mismatchData.primitive
52
- : AST_PRIMITIVES.UNKNOWN;
48
+ const primitive = baseResult.mismatchData.primitive;
53
49
  return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
54
50
  type: AST_TYPES.literal,
55
51
  primitive,
@@ -71,8 +67,8 @@ function samePrimitiveType(_param, _dataType, context) {
71
67
  return baseResult;
72
68
  }
73
69
  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;
70
+ var _a;
71
+ const basePrimitive = (_a = context.fnNode.arguments[index]) === null || _a === void 0 ? void 0 : _a.primitive;
76
72
  return isSinglePrimitive(basePrimitive)
77
73
  ? basePrimitive
78
74
  : AST_PRIMITIVES.UNKNOWN;
@@ -1 +1 @@
1
- {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
@@ -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,51 @@
1
+ import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
2
+ import { isNumberParam, isStringParam } from '../utils';
3
+ import { greaterThanZero } from '../utils/greaterThanZero';
4
+ /**
5
+ * `LEFT` Returns the first character or characters in a text string, based on the number of characters you specify.
6
+ */
7
+ export const LEFT = {
8
+ identifier: 'LEFT',
9
+ parameters: [
10
+ {
11
+ identifier: 'CURRENT',
12
+ optional: false,
13
+ validator: [isStringParam],
14
+ },
15
+ {
16
+ identifier: 'EXTRACT_LENGTH',
17
+ optional: true,
18
+ validator: [isNumberParam, greaterThanZero],
19
+ },
20
+ ],
21
+ transpiler: {
22
+ elasticsearch,
23
+ snowflake,
24
+ redshift,
25
+ postgresql,
26
+ },
27
+ primitiveResult: AST_PRIMITIVES.STRING,
28
+ };
29
+ function elasticsearch(current, length) {
30
+ return `${ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, 0, ${length !== null && length !== void 0 ? length : 1})`;
31
+ }
32
+ function snowflake(current, length) {
33
+ return `LEFT(${current}, ${length !== null && length !== void 0 ? length : 1})`;
34
+ }
35
+ function SQL(current, length) {
36
+ const _length = length !== null && length !== void 0 ? length : 1;
37
+ return `
38
+ (case
39
+ when (${_length} < 0) then ''
40
+ else
41
+ LEFT(${current}, ${_length})
42
+ end
43
+ )`.trim();
44
+ }
45
+ function redshift(current, length) {
46
+ return SQL(current, length);
47
+ }
48
+ function postgresql(current, length) {
49
+ return SQL(current, length);
50
+ }
51
+ //# sourceMappingURL=left.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;SAC9C;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,MAAc;IAClD,OAAO,GAAG,0BAA0B,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,38 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isStringParam } from '../utils';
3
+ /**
4
+ * `LOWER` Returns the string give it in lower case.
5
+ */
6
+ export const LOWER = {
7
+ identifier: 'LOWER',
8
+ parameters: [
9
+ {
10
+ identifier: 'STRING',
11
+ optional: false,
12
+ validator: [isStringParam],
13
+ },
14
+ ],
15
+ transpiler: {
16
+ elasticsearch,
17
+ snowflake,
18
+ redshift,
19
+ postgresql,
20
+ },
21
+ primitiveResult: AST_PRIMITIVES.STRING,
22
+ };
23
+ function elasticsearch(current) {
24
+ return `${current}.toLowerCase()`;
25
+ }
26
+ function SQL(current) {
27
+ return `LOWER(${current})`;
28
+ }
29
+ function snowflake(current) {
30
+ return SQL(current);
31
+ }
32
+ function redshift(current) {
33
+ return SQL(current);
34
+ }
35
+ function postgresql(current) {
36
+ return SQL(current);
37
+ }
38
+ //# sourceMappingURL=lower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,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;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"}
@@ -1,6 +1,6 @@
1
- import { AST_PRIMITIVES, AST_TYPES, ELASTICSEARCH_SCRIPT_NAMES, } from '../constants';
2
- import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
1
+ import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
3
2
  import { isNumberParam, isStringParam } from '../utils';
3
+ import { greaterThanZero } from '../utils/greaterThanZero';
4
4
  /**
5
5
  * `MID` Returns a segment of a string.
6
6
  */
@@ -31,47 +31,26 @@ export const MID = {
31
31
  },
32
32
  primitiveResult: AST_PRIMITIVES.STRING,
33
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
- }
65
34
  function elasticsearch(current, start, length) {
66
- const optional = length ? `, ${length}` : '';
67
- return `${ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, ${start}${optional})`;
68
- }
69
- function SQL(current, start, length) {
70
- const optional = length ? `, ${length}` : '';
71
- return `SUBSTRING(${current}, ${start}${optional})`;
35
+ return `${ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, ${start}, ${length})`;
72
36
  }
73
37
  function snowflake(current, start, length) {
74
- return SQL(current, start, length);
38
+ return `SUBSTRING(${current}, ${start}, ${length})`;
39
+ }
40
+ function SQL(current, start, length) {
41
+ return `
42
+ (case
43
+ when (${length} < 0) OR (${start} * -1) > LENGTH(${current}) then ''
44
+ else
45
+ SUBSTRING(${current},
46
+ (case
47
+ when ${start} < 0 then (LENGTH(${current}) + ${start} + 1)
48
+ when ${start} = 0 then 1
49
+ else ${start}
50
+ end),
51
+ ${length})
52
+ end
53
+ )`.trim();
75
54
  }
76
55
  function redshift(current, start, length) {
77
56
  return SQL(current, start, length);
@@ -1 +1 @@
1
- {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"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"}
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;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;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,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;SAC9C;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,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,CAAC;AACtF,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,aAAa,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,OAAO;;UAED,MAAM,aAAa,KAAK,mBAAmB,OAAO;;oBAExC,OAAO;;uBAEJ,KAAK,qBAAqB,OAAO,OAAO,KAAK;uBAC7C,KAAK;uBACL,KAAK;;cAEd,MAAM;;MAEd,CAAC,IAAI,EAAE,CAAC;AACd,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"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `OR` Returns true if any expressions are truthy; otherwise, it will return false.
4
+ */
5
+ export declare const OR: FunctionDefinition;
@@ -0,0 +1,49 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isBooleanExpression } from '../utils/isBooleanExpression';
3
+ /**
4
+ * `OR` Returns true if any expressions are truthy; otherwise, it will return false.
5
+ */
6
+ export const OR = {
7
+ identifier: 'OR',
8
+ recursiveStartIn: 1,
9
+ parameters: [
10
+ {
11
+ identifier: 'LOGICAL_EXPRESSION',
12
+ optional: false,
13
+ validator: [isBooleanExpression],
14
+ },
15
+ {
16
+ identifier: 'LOGICAL_EXPRESSION',
17
+ optional: false,
18
+ validator: [isBooleanExpression],
19
+ },
20
+ {
21
+ identifier: 'LOGICAL_EXPRESSION',
22
+ optional: true,
23
+ validator: [isBooleanExpression],
24
+ },
25
+ ],
26
+ transpiler: {
27
+ elasticsearch,
28
+ snowflake,
29
+ redshift,
30
+ postgresql,
31
+ },
32
+ primitiveResult: AST_PRIMITIVES.BOOLEAN,
33
+ };
34
+ function elasticsearch(...args) {
35
+ return `(${args.join(' || ')})`;
36
+ }
37
+ function sql(...args) {
38
+ return `(${args.join(' OR ')})`;
39
+ }
40
+ function snowflake(...args) {
41
+ return sql(...args);
42
+ }
43
+ function redshift(...args) {
44
+ return sql(...args);
45
+ }
46
+ function postgresql(...args) {
47
+ return sql(...args);
48
+ }
49
+ //# sourceMappingURL=or.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or.js","sourceRoot":"","sources":["../../../src/functions/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,OAAO;CAC1C,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,MAAM,CAAC,GAAG,CAAC;AACpC,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
+ * `PROPER` Capitalizes the first letter in a string and any other letters in the text placed next to any character other than a letter. Converts the rest of the letters to lowercase.
4
+ */
5
+ export declare const PROPER: FunctionDefinition;
@@ -0,0 +1,35 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isStringParam } from '../utils';
3
+ /**
4
+ * `PROPER` Capitalizes the first letter in a string and any other letters in the text placed next to any character other than a letter. Converts the rest of the letters to lowercase.
5
+ */
6
+ export const PROPER = {
7
+ identifier: 'PROPER',
8
+ parameters: [
9
+ {
10
+ identifier: 'STRING',
11
+ optional: false,
12
+ validator: [isStringParam],
13
+ },
14
+ ],
15
+ transpiler: {
16
+ elasticsearch,
17
+ snowflake,
18
+ redshift,
19
+ postgresql,
20
+ },
21
+ primitiveResult: AST_PRIMITIVES.STRING,
22
+ };
23
+ function elasticsearch(current) {
24
+ return `PROPER_STRING(${current})`;
25
+ }
26
+ function snowflake(current) {
27
+ return `INITCAP(${current}, ' !"#$%&\\'()*+,-./:;<=>\\?@[\\\\]^_\`{|}~')`;
28
+ }
29
+ function redshift(current) {
30
+ return `INITCAP(${current})`;
31
+ }
32
+ function postgresql(current) {
33
+ return `INITCAP(${current})`;
34
+ }
35
+ //# sourceMappingURL=proper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proper.js","sourceRoot":"","sources":["../../../src/functions/proper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,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;IAClC,OAAO,iBAAiB,OAAO,GAAG,CAAC;AACvC,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,WAAW,OAAO,gDAAgD,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,WAAW,OAAO,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,WAAW,OAAO,GAAG,CAAC;AACjC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `RIGHT` Returns the last character or characters in a text string, based on the number of characters you specify.
4
+ */
5
+ export declare const RIGHT: FunctionDefinition;
@@ -0,0 +1,52 @@
1
+ import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
2
+ import { isNumberParam, isStringParam } from '../utils';
3
+ import { greaterThanZero } from '../utils/greaterThanZero';
4
+ /**
5
+ * `RIGHT` Returns the last character or characters in a text string, based on the number of characters you specify.
6
+ */
7
+ export const RIGHT = {
8
+ identifier: 'RIGHT',
9
+ parameters: [
10
+ {
11
+ identifier: 'CURRENT',
12
+ optional: false,
13
+ validator: [isStringParam],
14
+ },
15
+ {
16
+ identifier: 'EXTRACT_LENGTH',
17
+ optional: true,
18
+ validator: [isNumberParam, greaterThanZero],
19
+ },
20
+ ],
21
+ transpiler: {
22
+ elasticsearch,
23
+ snowflake,
24
+ redshift,
25
+ postgresql,
26
+ },
27
+ primitiveResult: AST_PRIMITIVES.STRING,
28
+ };
29
+ function elasticsearch(current, length) {
30
+ const _length = length !== null && length !== void 0 ? length : 1;
31
+ return `${ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, ${_length} * -1, ${_length})`;
32
+ }
33
+ function snowflake(current, length) {
34
+ return `RIGHT(${current}, ${length !== null && length !== void 0 ? length : 1})`;
35
+ }
36
+ function SQL(current, length) {
37
+ const _length = length !== null && length !== void 0 ? length : 1;
38
+ return `
39
+ (case
40
+ when (${_length} < 0) then ''
41
+ else
42
+ RIGHT(${current}, ${_length})
43
+ end
44
+ )`.trim();
45
+ }
46
+ function redshift(current, length) {
47
+ return SQL(current, length);
48
+ }
49
+ function postgresql(current, length) {
50
+ return SQL(current, length);
51
+ }
52
+ //# sourceMappingURL=right.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"right.js","sourceRoot":"","sources":["../../../src/functions/right.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;SAC9C;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,MAAc;IAClD,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;IAC5B,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,OAAO,UAAU,OAAO,GAAG,CAAC;AAC9F,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,SAAS,OAAO,KAAK,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,MAAc;IACxC,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;IAC5B,OAAO;;UAED,OAAO;;gBAED,OAAO,KAAK,OAAO;;MAE7B,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
+ * `TRIM` Remove leading and trailing spaces
4
+ */
5
+ export declare const TRIM: FunctionDefinition;