@sqb/builder 4.1.5 → 4.5.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 (208) hide show
  1. package/README.md +2 -2
  2. package/cjs/classes.ns.js +41 -0
  3. package/{dist → cjs}/enums.js +7 -0
  4. package/{dist → cjs}/extensions.js +0 -0
  5. package/{dist → cjs}/helpers.js +0 -0
  6. package/cjs/index.js +27 -0
  7. package/{dist → cjs}/op.initializers.js +42 -42
  8. package/cjs/package.json +3 -0
  9. package/{dist/query/DeleteQuery.js → cjs/query/delete-query.js} +13 -11
  10. package/{dist/query/InsertQuery.js → cjs/query/insert-query.js} +17 -16
  11. package/{dist/query/Query.js → cjs/query/query.js} +5 -4
  12. package/{dist/query/ReturningQuery.js → cjs/query/returning-query.js} +9 -8
  13. package/cjs/query/select-query.js +294 -0
  14. package/{dist/query/UpdateQuery.js → cjs/query/update-query.js} +18 -15
  15. package/{dist/Serializable.js → cjs/serializable.js} +0 -0
  16. package/{dist/SerializeContext.js → cjs/serialize-context.js} +37 -26
  17. package/cjs/sql-objects/base-field.js +11 -0
  18. package/{dist/sql-objects/CaseStatement.js → cjs/sql-objects/case-statement.js} +10 -6
  19. package/cjs/sql-objects/coalesce-statement.js +46 -0
  20. package/{dist/sql-objects/CountStatement.js → cjs/sql-objects/count-statement.js} +5 -4
  21. package/cjs/sql-objects/expression.js +10 -0
  22. package/{dist/sql-objects/FieldExpression.js → cjs/sql-objects/field-expression.js} +5 -4
  23. package/{dist/sql-objects/GroupColumn.js → cjs/sql-objects/group-column.js} +4 -4
  24. package/{dist/sql-objects/JoinStatement.js → cjs/sql-objects/join-statement.js} +20 -18
  25. package/cjs/sql-objects/lower-statement.js +41 -0
  26. package/cjs/sql-objects/max-statement.js +41 -0
  27. package/cjs/sql-objects/min-statement.js +41 -0
  28. package/{dist/sql-objects/Operator.js → cjs/sql-objects/operator.js} +2 -2
  29. package/{dist/sql-objects/operators/CompOperator.js → cjs/sql-objects/operators/comp-operator.js} +19 -16
  30. package/{dist/sql-objects/operators/LogicalOperator.js → cjs/sql-objects/operators/logical-operator.js} +14 -13
  31. package/cjs/sql-objects/operators/op-and.js +9 -0
  32. package/{dist/sql-objects/operators/OpBetween.js → cjs/sql-objects/operators/op-between.js} +5 -5
  33. package/cjs/sql-objects/operators/op-eq.js +13 -0
  34. package/{dist/sql-objects/operators/OpExists.js → cjs/sql-objects/operators/op-exists.js} +7 -7
  35. package/cjs/sql-objects/operators/op-gt.js +13 -0
  36. package/cjs/sql-objects/operators/op-gte.js +13 -0
  37. package/cjs/sql-objects/operators/op-ilike.js +10 -0
  38. package/cjs/sql-objects/operators/op-in.js +19 -0
  39. package/cjs/sql-objects/operators/op-is-not.js +13 -0
  40. package/cjs/sql-objects/operators/op-is.js +13 -0
  41. package/{dist/sql-objects/operators/OpLike.js → cjs/sql-objects/operators/op-like.js} +7 -7
  42. package/cjs/sql-objects/operators/op-lt.js +13 -0
  43. package/cjs/sql-objects/operators/op-lte.js +13 -0
  44. package/cjs/sql-objects/operators/op-ne.js +13 -0
  45. package/cjs/sql-objects/operators/op-not-between.js +10 -0
  46. package/cjs/sql-objects/operators/op-not-exists.js +10 -0
  47. package/cjs/sql-objects/operators/op-not-ilike.js +10 -0
  48. package/cjs/sql-objects/operators/op-not-in.js +10 -0
  49. package/cjs/sql-objects/operators/op-not-like.js +10 -0
  50. package/cjs/sql-objects/operators/op-or.js +9 -0
  51. package/{dist/sql-objects/OrderColumn.js → cjs/sql-objects/order-column.js} +5 -4
  52. package/{dist/sql-objects/ParamExpression.js → cjs/sql-objects/param-expression.js} +7 -4
  53. package/{dist/sql-objects/RawStatement.js → cjs/sql-objects/raw-statement.js} +5 -4
  54. package/{dist/sql-objects/ReturningColumn.js → cjs/sql-objects/returning-column.js} +5 -4
  55. package/cjs/sql-objects/sequence-getter-statement.js +51 -0
  56. package/cjs/sql-objects/string-agg-statement.js +82 -0
  57. package/{dist/sql-objects/TableName.js → cjs/sql-objects/table-name.js} +7 -4
  58. package/cjs/sql-objects/upper-statement.js +41 -0
  59. package/cjs/sqlobject.initializers.js +129 -0
  60. package/cjs/typeguards.js +78 -0
  61. package/{dist → cjs}/types.js +0 -0
  62. package/esm/classes.ns.d.ts +38 -0
  63. package/esm/classes.ns.js +38 -0
  64. package/{dist → esm}/enums.d.ts +7 -0
  65. package/esm/enums.js +95 -0
  66. package/{dist → esm}/extensions.d.ts +1 -1
  67. package/esm/extensions.js +11 -0
  68. package/{dist → esm}/helpers.d.ts +0 -0
  69. package/esm/helpers.js +27 -0
  70. package/esm/index.d.ts +20 -0
  71. package/esm/index.js +20 -0
  72. package/{dist → esm}/op.initializers.d.ts +22 -22
  73. package/esm/op.initializers.js +126 -0
  74. package/{dist/query/DeleteQuery.d.ts → esm/query/delete-query.d.ts} +6 -6
  75. package/esm/query/delete-query.js +51 -0
  76. package/{dist/query/InsertQuery.d.ts → esm/query/insert-query.d.ts} +5 -5
  77. package/esm/query/insert-query.js +73 -0
  78. package/{dist/query/Query.d.ts → esm/query/query.d.ts} +2 -2
  79. package/esm/query/query.js +36 -0
  80. package/{dist/query/ReturningQuery.d.ts → esm/query/returning-query.d.ts} +3 -3
  81. package/esm/query/returning-query.js +41 -0
  82. package/{dist/query/SelectQuery.d.ts → esm/query/select-query.d.ts} +13 -13
  83. package/{dist/query/SelectQuery.js → esm/query/select-query.js} +41 -34
  84. package/{dist/query/UpdateQuery.d.ts → esm/query/update-query.d.ts} +6 -6
  85. package/esm/query/update-query.js +79 -0
  86. package/{dist/Serializable.d.ts → esm/serializable.d.ts} +2 -2
  87. package/esm/serializable.js +2 -0
  88. package/{dist/SerializeContext.d.ts → esm/serialize-context.d.ts} +1 -1
  89. package/esm/serialize-context.js +145 -0
  90. package/{dist/sql-objects/BaseField.d.ts → esm/sql-objects/base-field.d.ts} +1 -1
  91. package/esm/sql-objects/base-field.js +7 -0
  92. package/{dist/sql-objects/CaseStatement.d.ts → esm/sql-objects/case-statement.d.ts} +6 -6
  93. package/esm/sql-objects/case-statement.js +85 -0
  94. package/esm/sql-objects/coalesce-statement.d.ts +22 -0
  95. package/esm/sql-objects/coalesce-statement.js +42 -0
  96. package/{dist/sql-objects/CountStatement.d.ts → esm/sql-objects/count-statement.d.ts} +3 -3
  97. package/esm/sql-objects/count-statement.js +31 -0
  98. package/{dist/sql-objects/Expression.d.ts → esm/sql-objects/expression.d.ts} +2 -2
  99. package/esm/sql-objects/expression.js +6 -0
  100. package/{dist/sql-objects/FieldExpression.d.ts → esm/sql-objects/field-expression.d.ts} +3 -3
  101. package/esm/sql-objects/field-expression.js +50 -0
  102. package/{dist/sql-objects/GroupColumn.d.ts → esm/sql-objects/group-column.d.ts} +3 -3
  103. package/esm/sql-objects/group-column.js +34 -0
  104. package/{dist/sql-objects/JoinStatement.d.ts → esm/sql-objects/join-statement.d.ts} +7 -7
  105. package/esm/sql-objects/join-statement.js +79 -0
  106. package/esm/sql-objects/lower-statement.d.ts +22 -0
  107. package/esm/sql-objects/lower-statement.js +37 -0
  108. package/esm/sql-objects/max-statement.d.ts +22 -0
  109. package/esm/sql-objects/max-statement.js +37 -0
  110. package/esm/sql-objects/min-statement.d.ts +22 -0
  111. package/esm/sql-objects/min-statement.js +37 -0
  112. package/{dist/sql-objects/Operator.d.ts → esm/sql-objects/operator.d.ts} +2 -2
  113. package/esm/sql-objects/operator.js +3 -0
  114. package/{dist/sql-objects/operators/CompOperator.d.ts → esm/sql-objects/operators/comp-operator.d.ts} +4 -4
  115. package/esm/sql-objects/operators/comp-operator.js +86 -0
  116. package/{dist/sql-objects/operators/LogicalOperator.d.ts → esm/sql-objects/operators/logical-operator.d.ts} +4 -4
  117. package/esm/sql-objects/operators/logical-operator.js +79 -0
  118. package/esm/sql-objects/operators/op-and.d.ts +5 -0
  119. package/esm/sql-objects/operators/op-and.js +5 -0
  120. package/{dist/sql-objects/operators/OpBetween.d.ts → esm/sql-objects/operators/op-between.d.ts} +4 -4
  121. package/esm/sql-objects/operators/op-between.js +31 -0
  122. package/{dist/sql-objects/operators/OpEq.d.ts → esm/sql-objects/operators/op-eq.d.ts} +3 -3
  123. package/esm/sql-objects/operators/op-eq.js +9 -0
  124. package/{dist/sql-objects/operators/OpExists.d.ts → esm/sql-objects/operators/op-exists.d.ts} +4 -4
  125. package/esm/sql-objects/operators/op-exists.js +26 -0
  126. package/{dist/sql-objects/operators/OpGt.d.ts → esm/sql-objects/operators/op-gt.d.ts} +3 -3
  127. package/esm/sql-objects/operators/op-gt.js +9 -0
  128. package/{dist/sql-objects/operators/OpGte.d.ts → esm/sql-objects/operators/op-gte.d.ts} +3 -3
  129. package/esm/sql-objects/operators/op-gte.js +9 -0
  130. package/{dist/sql-objects/operators/OpILike.d.ts → esm/sql-objects/operators/op-ilike.d.ts} +2 -2
  131. package/esm/sql-objects/operators/op-ilike.js +6 -0
  132. package/{dist/sql-objects/operators/OpIn.d.ts → esm/sql-objects/operators/op-in.d.ts} +3 -3
  133. package/esm/sql-objects/operators/op-in.js +15 -0
  134. package/{dist/sql-objects/operators/OpIsNot.d.ts → esm/sql-objects/operators/op-is-not.d.ts} +3 -3
  135. package/esm/sql-objects/operators/op-is-not.js +9 -0
  136. package/{dist/sql-objects/operators/OpIs.d.ts → esm/sql-objects/operators/op-is.d.ts} +3 -3
  137. package/esm/sql-objects/operators/op-is.js +9 -0
  138. package/{dist/sql-objects/operators/OpLike.d.ts → esm/sql-objects/operators/op-like.d.ts} +4 -4
  139. package/esm/sql-objects/operators/op-like.js +18 -0
  140. package/{dist/sql-objects/operators/OpLt.d.ts → esm/sql-objects/operators/op-lt.d.ts} +3 -3
  141. package/esm/sql-objects/operators/op-lt.js +9 -0
  142. package/{dist/sql-objects/operators/OpLte.d.ts → esm/sql-objects/operators/op-lte.d.ts} +3 -3
  143. package/esm/sql-objects/operators/op-lte.js +9 -0
  144. package/{dist/sql-objects/operators/OpNe.d.ts → esm/sql-objects/operators/op-ne.d.ts} +3 -3
  145. package/esm/sql-objects/operators/op-ne.js +9 -0
  146. package/{dist/sql-objects/operators/OpNotBetween.d.ts → esm/sql-objects/operators/op-not-between.d.ts} +2 -2
  147. package/esm/sql-objects/operators/op-not-between.js +6 -0
  148. package/{dist/sql-objects/operators/OpNotExists.d.ts → esm/sql-objects/operators/op-not-exists.d.ts} +2 -2
  149. package/esm/sql-objects/operators/op-not-exists.js +6 -0
  150. package/{dist/sql-objects/operators/OpNotILike.d.ts → esm/sql-objects/operators/op-not-ilike.d.ts} +2 -2
  151. package/esm/sql-objects/operators/op-not-ilike.js +6 -0
  152. package/{dist/sql-objects/operators/OpNotIn.d.ts → esm/sql-objects/operators/op-not-in.d.ts} +2 -2
  153. package/esm/sql-objects/operators/op-not-in.js +6 -0
  154. package/{dist/sql-objects/operators/OpNotLike.d.ts → esm/sql-objects/operators/op-not-like.d.ts} +2 -2
  155. package/esm/sql-objects/operators/op-not-like.js +6 -0
  156. package/esm/sql-objects/operators/op-or.d.ts +5 -0
  157. package/esm/sql-objects/operators/op-or.js +5 -0
  158. package/{dist/sql-objects/OrderColumn.d.ts → esm/sql-objects/order-column.d.ts} +3 -3
  159. package/esm/sql-objects/order-column.js +39 -0
  160. package/{dist/sql-objects/ParamExpression.d.ts → esm/sql-objects/param-expression.d.ts} +3 -3
  161. package/esm/sql-objects/param-expression.js +52 -0
  162. package/{dist/sql-objects/RawStatement.d.ts → esm/sql-objects/raw-statement.d.ts} +3 -3
  163. package/esm/sql-objects/raw-statement.js +15 -0
  164. package/{dist/sql-objects/ReturningColumn.d.ts → esm/sql-objects/returning-column.d.ts} +3 -3
  165. package/esm/sql-objects/returning-column.js +29 -0
  166. package/esm/sql-objects/sequence-getter-statement.d.ts +24 -0
  167. package/esm/sql-objects/sequence-getter-statement.js +47 -0
  168. package/esm/sql-objects/string-agg-statement.d.ts +31 -0
  169. package/esm/sql-objects/string-agg-statement.js +78 -0
  170. package/{dist/sql-objects/TableName.d.ts → esm/sql-objects/table-name.d.ts} +3 -3
  171. package/esm/sql-objects/table-name.js +30 -0
  172. package/esm/sql-objects/upper-statement.d.ts +22 -0
  173. package/esm/sql-objects/upper-statement.js +37 -0
  174. package/esm/sqlobject.initializers.d.ts +54 -0
  175. package/esm/sqlobject.initializers.js +101 -0
  176. package/{dist → esm}/typeguards.d.ts +18 -17
  177. package/esm/typeguards.js +57 -0
  178. package/{dist → esm}/types.d.ts +2 -2
  179. package/esm/types.js +1 -0
  180. package/package.json +49 -34
  181. package/dist/classes.d.ts +0 -38
  182. package/dist/classes.js +0 -41
  183. package/dist/index.d.ts +0 -20
  184. package/dist/index.js +0 -27
  185. package/dist/sql-objects/BaseField.js +0 -11
  186. package/dist/sql-objects/Expression.js +0 -7
  187. package/dist/sql-objects/operators/OpAnd.d.ts +0 -5
  188. package/dist/sql-objects/operators/OpAnd.js +0 -12
  189. package/dist/sql-objects/operators/OpEq.js +0 -13
  190. package/dist/sql-objects/operators/OpGt.js +0 -13
  191. package/dist/sql-objects/operators/OpGte.js +0 -13
  192. package/dist/sql-objects/operators/OpILike.js +0 -13
  193. package/dist/sql-objects/operators/OpIn.js +0 -19
  194. package/dist/sql-objects/operators/OpIs.js +0 -13
  195. package/dist/sql-objects/operators/OpIsNot.js +0 -13
  196. package/dist/sql-objects/operators/OpLt.js +0 -13
  197. package/dist/sql-objects/operators/OpLte.js +0 -13
  198. package/dist/sql-objects/operators/OpNe.js +0 -13
  199. package/dist/sql-objects/operators/OpNotBetween.js +0 -13
  200. package/dist/sql-objects/operators/OpNotExists.js +0 -13
  201. package/dist/sql-objects/operators/OpNotILike.js +0 -13
  202. package/dist/sql-objects/operators/OpNotIn.js +0 -13
  203. package/dist/sql-objects/operators/OpNotLike.js +0 -13
  204. package/dist/sql-objects/operators/OpOr.d.ts +0 -5
  205. package/dist/sql-objects/operators/OpOr.js +0 -12
  206. package/dist/sqlobject.initializers.d.ts +0 -39
  207. package/dist/sqlobject.initializers.js +0 -90
  208. package/dist/typeguards.js +0 -73
@@ -1,24 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JoinStatement = void 0;
4
- const enums_1 = require("../enums");
5
- const Serializable_1 = require("../Serializable");
6
- const typeguards_1 = require("../typeguards");
7
- const OpAnd_1 = require("./operators/OpAnd");
8
- const TableName_1 = require("./TableName");
9
- class JoinStatement extends Serializable_1.Serializable {
4
+ const enums_js_1 = require("../enums.js");
5
+ const serializable_js_1 = require("../serializable.js");
6
+ const typeguards_js_1 = require("../typeguards.js");
7
+ const op_and_js_1 = require("./operators/op-and.js");
8
+ const table_name_js_1 = require("./table-name.js");
9
+ class JoinStatement extends serializable_js_1.Serializable {
10
+ _joinType;
11
+ _table;
12
+ _conditions = new op_and_js_1.OpAnd();
10
13
  constructor(joinType, table) {
11
14
  super();
12
- this._conditions = new OpAnd_1.OpAnd();
13
15
  // noinspection SuspiciousTypeOfGuard
14
- if (!((0, typeguards_1.isSelectQuery)(table) || (0, typeguards_1.isRawStatement)(table) || (0, typeguards_1.isTableName)(table) ||
16
+ if (!((0, typeguards_js_1.isSelectQuery)(table) || (0, typeguards_js_1.isRawStatement)(table) || (0, typeguards_js_1.isTableName)(table) ||
15
17
  typeof table === 'string'))
16
18
  throw new TypeError('Table name, select query or raw object required for Join');
17
19
  this._joinType = joinType;
18
- this._table = typeof table === 'string' ? new TableName_1.TableName(table) : table;
20
+ this._table = typeof table === 'string' ? new table_name_js_1.TableName(table) : table;
19
21
  }
20
22
  get _type() {
21
- return enums_1.SerializationType.JOIN;
23
+ return enums_js_1.SerializationType.JOIN;
22
24
  }
23
25
  on(...conditions) {
24
26
  this._conditions.add(...conditions);
@@ -33,22 +35,22 @@ class JoinStatement extends Serializable_1.Serializable {
33
35
  return ctx.serialize(this._type, o, () => {
34
36
  let out;
35
37
  switch (this._joinType) {
36
- case enums_1.JoinType.LEFT:
38
+ case enums_js_1.JoinType.LEFT:
37
39
  out = 'left join';
38
40
  break;
39
- case enums_1.JoinType.LEFT_OUTER:
41
+ case enums_js_1.JoinType.LEFT_OUTER:
40
42
  out = 'left outer join';
41
43
  break;
42
- case enums_1.JoinType.RIGHT:
44
+ case enums_js_1.JoinType.RIGHT:
43
45
  out = 'right join';
44
46
  break;
45
- case enums_1.JoinType.RIGHT_OUTER:
47
+ case enums_js_1.JoinType.RIGHT_OUTER:
46
48
  out = 'right outer join';
47
49
  break;
48
- case enums_1.JoinType.OUTER:
50
+ case enums_js_1.JoinType.OUTER:
49
51
  out = 'outer join';
50
52
  break;
51
- case enums_1.JoinType.FULL_OUTER:
53
+ case enums_js_1.JoinType.FULL_OUTER:
52
54
  out = 'full outer join';
53
55
  break;
54
56
  default:
@@ -56,7 +58,7 @@ class JoinStatement extends Serializable_1.Serializable {
56
58
  break;
57
59
  }
58
60
  const lf = o.table.length > 40;
59
- if ((0, typeguards_1.isSelectQuery)(this._table)) {
61
+ if ((0, typeguards_js_1.isSelectQuery)(this._table)) {
60
62
  const alias = this._table._alias;
61
63
  if (!alias)
62
64
  throw new Error('Alias required for sub-select in Join');
@@ -73,7 +75,7 @@ class JoinStatement extends Serializable_1.Serializable {
73
75
  __serializeConditions(ctx, join) {
74
76
  if (join._conditions._items.length) {
75
77
  const s = join._conditions._serialize(ctx);
76
- return ctx.serialize(enums_1.SerializationType.JOIN_CONDITIONS, s, () => s ? 'on ' + s : '');
78
+ return ctx.serialize(enums_js_1.SerializationType.JOIN_CONDITIONS, s, () => s ? 'on ' + s : '');
77
79
  }
78
80
  return '';
79
81
  }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LowerStatement = void 0;
4
+ const enums_js_1 = require("../enums.js");
5
+ const serializable_js_1 = require("../serializable.js");
6
+ class LowerStatement extends serializable_js_1.Serializable {
7
+ _expression;
8
+ _alias;
9
+ constructor(expression) {
10
+ super();
11
+ this._expression = expression;
12
+ }
13
+ get _type() {
14
+ return enums_js_1.SerializationType.LOWER_STATEMENT;
15
+ }
16
+ /**
17
+ * Sets alias to case expression.
18
+ */
19
+ as(alias) {
20
+ this._alias = alias;
21
+ return this;
22
+ }
23
+ /**
24
+ * Performs serialization
25
+ *
26
+ * @param {Object} ctx
27
+ * @return {string}
28
+ * @override
29
+ */
30
+ _serialize(ctx) {
31
+ if (!this._expression)
32
+ return '';
33
+ const q = ctx.anyToSQL(this._expression);
34
+ return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q));
35
+ }
36
+ __defaultSerialize(ctx, o) {
37
+ return 'lower(' + o + ')' +
38
+ (this._alias ? ' ' + this._alias : '');
39
+ }
40
+ }
41
+ exports.LowerStatement = LowerStatement;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaxStatement = void 0;
4
+ const enums_js_1 = require("../enums.js");
5
+ const serializable_js_1 = require("../serializable.js");
6
+ class MaxStatement extends serializable_js_1.Serializable {
7
+ _expression;
8
+ _alias;
9
+ constructor(expression) {
10
+ super();
11
+ this._expression = expression;
12
+ }
13
+ get _type() {
14
+ return enums_js_1.SerializationType.MAX_STATEMENT;
15
+ }
16
+ /**
17
+ * Sets alias to case expression.
18
+ */
19
+ as(alias) {
20
+ this._alias = alias;
21
+ return this;
22
+ }
23
+ /**
24
+ * Performs serialization
25
+ *
26
+ * @param {Object} ctx
27
+ * @return {string}
28
+ * @override
29
+ */
30
+ _serialize(ctx) {
31
+ if (!this._expression)
32
+ return '';
33
+ const q = ctx.anyToSQL(this._expression);
34
+ return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q));
35
+ }
36
+ __defaultSerialize(ctx, o) {
37
+ return 'max(' + o + ')' +
38
+ (this._alias ? ' ' + this._alias : '');
39
+ }
40
+ }
41
+ exports.MaxStatement = MaxStatement;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MinStatement = void 0;
4
+ const enums_js_1 = require("../enums.js");
5
+ const serializable_js_1 = require("../serializable.js");
6
+ class MinStatement extends serializable_js_1.Serializable {
7
+ _expression;
8
+ _alias;
9
+ constructor(expression) {
10
+ super();
11
+ this._expression = expression;
12
+ }
13
+ get _type() {
14
+ return enums_js_1.SerializationType.MIN_STATEMENT;
15
+ }
16
+ /**
17
+ * Sets alias to case expression.
18
+ */
19
+ as(alias) {
20
+ this._alias = alias;
21
+ return this;
22
+ }
23
+ /**
24
+ * Performs serialization
25
+ *
26
+ * @param {Object} ctx
27
+ * @return {string}
28
+ * @override
29
+ */
30
+ _serialize(ctx) {
31
+ if (!this._expression)
32
+ return '';
33
+ const q = ctx.anyToSQL(this._expression);
34
+ return ctx.serialize(this._type, q, () => this.__defaultSerialize(ctx, q));
35
+ }
36
+ __defaultSerialize(ctx, o) {
37
+ return 'min(' + o + ')' +
38
+ (this._alias ? ' ' + this._alias : '');
39
+ }
40
+ }
41
+ exports.MinStatement = MinStatement;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Operator = void 0;
4
- const Serializable_1 = require("../Serializable");
5
- class Operator extends Serializable_1.Serializable {
4
+ const serializable_js_1 = require("../serializable.js");
5
+ class Operator extends serializable_js_1.Serializable {
6
6
  }
7
7
  exports.Operator = Operator;
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CompOperator = void 0;
4
- const enums_1 = require("../../enums");
5
- const Serializable_1 = require("../../Serializable");
6
- const sqlobject_initializers_1 = require("../../sqlobject.initializers");
7
- const typeguards_1 = require("../../typeguards");
8
- const FieldExpression_1 = require("../FieldExpression");
9
- const Operator_1 = require("../Operator");
10
- const ParamExpression_1 = require("../ParamExpression");
4
+ const enums_js_1 = require("../../enums.js");
5
+ const serializable_js_1 = require("../../serializable.js");
6
+ const sqlobject_initializers_js_1 = require("../../sqlobject.initializers.js");
7
+ const field_expression_js_1 = require("../field-expression.js");
8
+ const operator_js_1 = require("../operator.js");
9
+ const param_expression_js_1 = require("../param-expression.js");
11
10
  const EXPRESSION_PATTERN = /^([\w\\.$]+)(\[])?/;
12
- class CompOperator extends Operator_1.Operator {
11
+ class CompOperator extends operator_js_1.Operator {
12
+ _left;
13
+ _right;
14
+ _symbol;
15
+ _isArray;
13
16
  constructor(left, right) {
14
17
  super();
15
18
  if (typeof left === 'string') {
@@ -24,7 +27,7 @@ class CompOperator extends Operator_1.Operator {
24
27
  this._right = right;
25
28
  }
26
29
  get _type() {
27
- return enums_1.SerializationType.COMPARISON_EXPRESSION;
30
+ return enums_js_1.SerializationType.COMPARISON_EXPRESSION;
28
31
  }
29
32
  _serialize(ctx) {
30
33
  const left = this.__serializeItem(ctx, this._left);
@@ -40,24 +43,24 @@ class CompOperator extends Operator_1.Operator {
40
43
  return this.__serialize(ctx, o);
41
44
  }
42
45
  __serializeItem(ctx, x, isRight) {
43
- if (ctx.strictParams && !(x instanceof Serializable_1.Serializable) &&
46
+ if (ctx.strictParams && !(x instanceof serializable_js_1.Serializable) &&
44
47
  (typeof x !== 'string' || isRight)) {
45
48
  ctx.strictParamGenId = ctx.strictParamGenId || 0;
46
49
  const name = 'strictParam$' + ++ctx.strictParamGenId;
47
50
  ctx.params = ctx.params || {};
48
51
  ctx.params[name] = x;
49
- x = (0, sqlobject_initializers_1.Param)(name);
52
+ x = (0, sqlobject_initializers_js_1.Param)(name);
50
53
  }
51
- if (x instanceof Serializable_1.Serializable) {
52
- const expression = x._serialize(ctx);
54
+ if (x instanceof serializable_js_1.Serializable) {
55
+ const expression = ctx.anyToSQL(x);
53
56
  const result = {
54
- expression: (0, typeguards_1.isSelectQuery)(x) ? '(' + expression + ')' : expression
57
+ expression
55
58
  };
56
- if (x instanceof FieldExpression_1.FieldExpression) {
59
+ if (x instanceof field_expression_js_1.FieldExpression) {
57
60
  result.dataType = result._dataType;
58
61
  result.isArray = x._isArray;
59
62
  }
60
- if (x instanceof ParamExpression_1.ParamExpression) {
63
+ if (x instanceof param_expression_js_1.ParamExpression) {
61
64
  let value = ctx.params ? ctx.params[x._name] : undefined;
62
65
  if (x._isArray && value != null)
63
66
  value = [value];
@@ -3,21 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LogicalOperator = exports.WrapOps = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const putil_isplainobject_1 = tslib_1.__importDefault(require("putil-isplainobject"));
6
- const enums_1 = require("../../enums");
7
- const helpers_1 = require("../../helpers");
8
- const typeguards_1 = require("../../typeguards");
9
- const Operator_1 = require("../Operator");
6
+ const enums_js_1 = require("../../enums.js");
7
+ const helpers_js_1 = require("../../helpers.js");
8
+ const typeguards_js_1 = require("../../typeguards.js");
9
+ const operator_js_1 = require("../operator.js");
10
10
  exports.WrapOps = {};
11
11
  // noinspection RegExpUnnecessaryNonCapturingGroup
12
12
  const COMPARE_LEFT_PATTERN = /^([\w\\.$]+(?:\[])?) *(.*)$/;
13
- class LogicalOperator extends Operator_1.Operator {
13
+ class LogicalOperator extends operator_js_1.Operator {
14
+ _items = [];
14
15
  constructor(...expressions) {
15
16
  super();
16
- this._items = [];
17
17
  this.add(...expressions);
18
18
  }
19
19
  get _type() {
20
- return enums_1.SerializationType.LOGICAL_EXPRESSION;
20
+ return enums_js_1.SerializationType.LOGICAL_EXPRESSION;
21
21
  }
22
22
  /**
23
23
  * Adds operator(s) to item list
@@ -26,10 +26,10 @@ class LogicalOperator extends Operator_1.Operator {
26
26
  for (const item of expressions) {
27
27
  if (!item)
28
28
  continue;
29
- if ((0, typeguards_1.isLogicalOperator)(item)) {
29
+ if ((0, typeguards_js_1.isLogicalOperator)(item)) {
30
30
  this._items.push(item);
31
31
  }
32
- else if ((0, typeguards_1.isRawStatement)(item) || (0, typeguards_1.isCompOperator)(item)) {
32
+ else if ((0, typeguards_js_1.isRawStatement)(item) || (0, typeguards_js_1.isCompOperator)(item)) {
33
33
  this._items.push(item);
34
34
  }
35
35
  else if ((0, putil_isplainobject_1.default)(item)) {
@@ -43,16 +43,17 @@ class LogicalOperator extends Operator_1.Operator {
43
43
  _serialize(ctx) {
44
44
  const arr = [];
45
45
  for (const t of this._items) {
46
- const s = t._serialize(ctx);
46
+ const s = ctx.anyToSQL(t);
47
47
  /* istanbul ignore else */
48
48
  if (s)
49
- arr.push((0, typeguards_1.isLogicalOperator)(t) ? '(' + s + ')' : s);
49
+ arr.push(s);
50
50
  }
51
- return ctx.serialize(enums_1.SerializationType.LOGICAL_EXPRESSION, arr, () => {
52
- const s = (0, helpers_1.printArray)(arr, ' ' + String(this._operatorType));
51
+ return ctx.serialize(enums_js_1.SerializationType.LOGICAL_EXPRESSION, arr, () => {
52
+ const s = (0, helpers_js_1.printArray)(arr, ' ' + String(this._operatorType));
53
53
  return (s.indexOf('\n') > 0) ? s.replace('\n', '\n\t') + '\b' : s;
54
54
  });
55
55
  }
56
+ // noinspection JSMethodCanBeStatic
56
57
  _wrapObject(obj) {
57
58
  const result = [];
58
59
  for (const n of Object.getOwnPropertyNames(obj)) {
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpAnd = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const logical_operator_js_1 = require("./logical-operator.js");
6
+ class OpAnd extends logical_operator_js_1.LogicalOperator {
7
+ _operatorType = enums_js_1.OperatorType.and;
8
+ }
9
+ exports.OpAnd = OpAnd;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpBetween = void 0;
4
- const enums_1 = require("../../enums");
5
- const CompOperator_1 = require("./CompOperator");
6
- class OpBetween extends CompOperator_1.CompOperator {
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpBetween extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.between;
8
+ _symbol = 'between';
7
9
  constructor(left, right) {
8
10
  super(left, right);
9
- this._operatorType = enums_1.OperatorType.between;
10
- this._symbol = 'between';
11
11
  if (right && right[1] == null)
12
12
  right[1] = right[0];
13
13
  }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpEq = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpEq extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.eq;
8
+ _symbol = '=';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpEq = OpEq;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpExists = void 0;
4
- const enums_1 = require("../../enums");
5
- const typeguards_1 = require("../../typeguards");
6
- const CompOperator_1 = require("./CompOperator");
7
- class OpExists extends CompOperator_1.CompOperator {
4
+ const enums_js_1 = require("../../enums.js");
5
+ const typeguards_js_1 = require("../../typeguards.js");
6
+ const comp_operator_js_1 = require("./comp-operator.js");
7
+ class OpExists extends comp_operator_js_1.CompOperator {
8
+ _operatorType = enums_js_1.OperatorType.exists;
9
+ _symbol = 'exists';
8
10
  constructor(query) {
9
11
  super(query);
10
- this._operatorType = enums_1.OperatorType.exists;
11
- this._symbol = 'exists';
12
- if (!(typeof query === 'object' && (0, typeguards_1.isSelectQuery)(query)))
12
+ if (!(typeof query === 'object' && (0, typeguards_js_1.isSelectQuery)(query)))
13
13
  throw new TypeError('You must provide a SelectQuery in `exists()`');
14
14
  }
15
15
  _serialize(ctx) {
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpGt = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpGt extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.gt;
8
+ _symbol = '>';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpGt = OpGt;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpGte = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpGte extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.gte;
8
+ _symbol = '>=';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpGte = OpGte;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpILike = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_like_js_1 = require("./op-like.js");
6
+ class OpILike extends op_like_js_1.OpLike {
7
+ _operatorType = enums_js_1.OperatorType.iLike;
8
+ _symbol = 'ilike';
9
+ }
10
+ exports.OpILike = OpILike;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpIn = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const typeguards_js_1 = require("../../typeguards.js");
6
+ const comp_operator_js_1 = require("./comp-operator.js");
7
+ class OpIn extends comp_operator_js_1.CompOperator {
8
+ _operatorType = enums_js_1.OperatorType.in;
9
+ _symbol = 'in';
10
+ constructor(left, right) {
11
+ super(left, Array.isArray(right) || (0, typeguards_js_1.isSerializable)(right) ? right : [right]);
12
+ }
13
+ _serialize(ctx) {
14
+ if (Array.isArray(this._right) && !this._right.length)
15
+ return '';
16
+ return super._serialize(ctx);
17
+ }
18
+ }
19
+ exports.OpIn = OpIn;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpIsNot = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpIsNot extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.isNot;
8
+ _symbol = 'is not';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpIsNot = OpIsNot;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpIs = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpIs extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.is;
8
+ _symbol = 'is';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpIs = OpIs;
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpLike = void 0;
4
- const enums_1 = require("../../enums");
5
- const typeguards_1 = require("../../typeguards");
6
- const CompOperator_1 = require("./CompOperator");
7
- class OpLike extends CompOperator_1.CompOperator {
4
+ const enums_js_1 = require("../../enums.js");
5
+ const typeguards_js_1 = require("../../typeguards.js");
6
+ const comp_operator_js_1 = require("./comp-operator.js");
7
+ class OpLike extends comp_operator_js_1.CompOperator {
8
+ _operatorType = enums_js_1.OperatorType.like;
9
+ _symbol = 'like';
8
10
  constructor(left, right) {
9
11
  super(left, right);
10
- this._operatorType = enums_1.OperatorType.like;
11
- this._symbol = 'like';
12
12
  }
13
13
  __serialize(ctx, o) {
14
- if (o.right && typeof o.right !== 'string' && !(0, typeguards_1.isSerializable)(o.right))
14
+ if (o.right && typeof o.right !== 'string' && !(0, typeguards_js_1.isSerializable)(o.right))
15
15
  o.right = ctx.anyToSQL(o.right);
16
16
  if (!o.right)
17
17
  return '';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpLt = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpLt extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.lt;
8
+ _symbol = '<';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpLt = OpLt;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpLte = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpLte extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.lte;
8
+ _symbol = '<=';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpLte = OpLte;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNe = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const comp_operator_js_1 = require("./comp-operator.js");
6
+ class OpNe extends comp_operator_js_1.CompOperator {
7
+ _operatorType = enums_js_1.OperatorType.ne;
8
+ _symbol = '!=';
9
+ constructor(left, right) {
10
+ super(left, right);
11
+ }
12
+ }
13
+ exports.OpNe = OpNe;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNotBetween = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_between_js_1 = require("./op-between.js");
6
+ class OpNotBetween extends op_between_js_1.OpBetween {
7
+ _operatorType = enums_js_1.OperatorType.notBetween;
8
+ _symbol = 'not between';
9
+ }
10
+ exports.OpNotBetween = OpNotBetween;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNotExists = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_exists_js_1 = require("./op-exists.js");
6
+ class OpNotExists extends op_exists_js_1.OpExists {
7
+ _operatorType = enums_js_1.OperatorType.notExists;
8
+ _symbol = 'not exists';
9
+ }
10
+ exports.OpNotExists = OpNotExists;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNotILike = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_ilike_js_1 = require("./op-ilike.js");
6
+ class OpNotILike extends op_ilike_js_1.OpILike {
7
+ _operatorType = enums_js_1.OperatorType.notILike;
8
+ _symbol = 'not ilike';
9
+ }
10
+ exports.OpNotILike = OpNotILike;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNotIn = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_in_js_1 = require("./op-in.js");
6
+ class OpNotIn extends op_in_js_1.OpIn {
7
+ _operatorType = enums_js_1.OperatorType.notIn;
8
+ _symbol = 'not in';
9
+ }
10
+ exports.OpNotIn = OpNotIn;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpNotLike = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const op_like_js_1 = require("./op-like.js");
6
+ class OpNotLike extends op_like_js_1.OpLike {
7
+ _operatorType = enums_js_1.OperatorType.notLike;
8
+ _symbol = 'not like';
9
+ }
10
+ exports.OpNotLike = OpNotLike;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpOr = void 0;
4
+ const enums_js_1 = require("../../enums.js");
5
+ const logical_operator_js_1 = require("./logical-operator.js");
6
+ class OpOr extends logical_operator_js_1.LogicalOperator {
7
+ _operatorType = enums_js_1.OperatorType.or;
8
+ }
9
+ exports.OpOr = OpOr;