@sqb/builder 4.12.1 → 4.14.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 (45) hide show
  1. package/cjs/classes.ns.js +24 -24
  2. package/cjs/extensions.js +34 -12
  3. package/cjs/helpers.js +1 -2
  4. package/cjs/index.js +14 -16
  5. package/cjs/op.initializers.js +31 -31
  6. package/cjs/query/delete-query.js +5 -5
  7. package/cjs/query/insert-query.js +4 -2
  8. package/cjs/query/select-query.js +14 -12
  9. package/cjs/query/update-query.js +7 -6
  10. package/cjs/serialize-context.js +2 -2
  11. package/cjs/sql-objects/case-statement.js +2 -1
  12. package/cjs/sql-objects/group-column.js +3 -5
  13. package/cjs/sql-objects/join-statement.js +3 -2
  14. package/cjs/sql-objects/operators/comp-operator.js +6 -8
  15. package/cjs/sql-objects/operators/op-exists.js +2 -1
  16. package/cjs/sql-objects/operators/op-not.js +1 -3
  17. package/cjs/sql-objects/order-column.js +4 -6
  18. package/cjs/sql-objects/returning-column.js +1 -3
  19. package/cjs/sql-objects/string-agg-statement.js +2 -1
  20. package/cjs/sqlobject.initializers.js +28 -29
  21. package/cjs/typeguards.js +19 -20
  22. package/esm/classes.ns.js +24 -24
  23. package/esm/extensions.js +32 -9
  24. package/esm/index.js +12 -12
  25. package/esm/op.initializers.js +1 -1
  26. package/esm/query/delete-query.js +5 -5
  27. package/esm/query/insert-query.js +4 -2
  28. package/esm/query/select-query.js +14 -12
  29. package/esm/query/update-query.js +7 -6
  30. package/esm/serialize-context.js +3 -3
  31. package/esm/sql-objects/case-statement.js +2 -1
  32. package/esm/sql-objects/group-column.js +3 -5
  33. package/esm/sql-objects/join-statement.js +3 -2
  34. package/esm/sql-objects/operators/comp-operator.js +6 -8
  35. package/esm/sql-objects/operators/op-exists.js +2 -1
  36. package/esm/sql-objects/operators/op-not.js +1 -3
  37. package/esm/sql-objects/order-column.js +4 -6
  38. package/esm/sql-objects/returning-column.js +1 -3
  39. package/esm/sql-objects/string-agg-statement.js +2 -1
  40. package/package.json +1 -1
  41. package/types/classes.ns.d.ts +24 -24
  42. package/types/extensions.d.ts +12 -3
  43. package/types/index.d.ts +12 -12
  44. package/types/op.initializers.d.ts +1 -1
  45. package/types/query/query.d.ts +0 -1
package/cjs/classes.ns.js CHANGED
@@ -1,41 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./query/delete-query.js"), exports);
5
+ tslib_1.__exportStar(require("./query/insert-query.js"), exports);
4
6
  tslib_1.__exportStar(require("./query/query.js"), exports);
5
7
  tslib_1.__exportStar(require("./query/returning-query.js"), exports);
6
8
  tslib_1.__exportStar(require("./query/select-query.js"), exports);
7
- tslib_1.__exportStar(require("./query/insert-query.js"), exports);
8
9
  tslib_1.__exportStar(require("./query/update-query.js"), exports);
9
- tslib_1.__exportStar(require("./query/delete-query.js"), exports);
10
- tslib_1.__exportStar(require("./sql-objects/field-expression.js"), exports);
11
- tslib_1.__exportStar(require("./sql-objects/table-name.js"), exports);
12
- tslib_1.__exportStar(require("./sql-objects/order-column.js"), exports);
13
- tslib_1.__exportStar(require("./sql-objects/group-column.js"), exports);
14
10
  tslib_1.__exportStar(require("./sql-objects/base-field.js"), exports);
15
- tslib_1.__exportStar(require("./sql-objects/operator.js"), exports);
16
11
  tslib_1.__exportStar(require("./sql-objects/case-statement.js"), exports);
17
- tslib_1.__exportStar(require("./sql-objects/join-statement.js"), exports);
18
- tslib_1.__exportStar(require("./sql-objects/raw-statement.js"), exports);
19
12
  tslib_1.__exportStar(require("./sql-objects/count-statement.js"), exports);
13
+ tslib_1.__exportStar(require("./sql-objects/field-expression.js"), exports);
14
+ tslib_1.__exportStar(require("./sql-objects/group-column.js"), exports);
15
+ tslib_1.__exportStar(require("./sql-objects/join-statement.js"), exports);
16
+ tslib_1.__exportStar(require("./sql-objects/operator.js"), exports);
17
+ tslib_1.__exportStar(require("./sql-objects/operators/comp-operator.js"), exports);
20
18
  tslib_1.__exportStar(require("./sql-objects/operators/logical-operator.js"), exports);
21
19
  tslib_1.__exportStar(require("./sql-objects/operators/op-and.js"), exports);
22
- tslib_1.__exportStar(require("./sql-objects/operators/op-not-exists.js"), exports);
20
+ tslib_1.__exportStar(require("./sql-objects/operators/op-between.js"), exports);
21
+ tslib_1.__exportStar(require("./sql-objects/operators/op-eq.js"), exports);
23
22
  tslib_1.__exportStar(require("./sql-objects/operators/op-exists.js"), exports);
24
- tslib_1.__exportStar(require("./sql-objects/operators/op-not-ilike.js"), exports);
25
- tslib_1.__exportStar(require("./sql-objects/operators/op-not-like.js"), exports);
26
- tslib_1.__exportStar(require("./sql-objects/operators/op-not-in.js"), exports);
27
- tslib_1.__exportStar(require("./sql-objects/operators/op-not-between.js"), exports);
28
- tslib_1.__exportStar(require("./sql-objects/operators/op-ne.js"), exports);
23
+ tslib_1.__exportStar(require("./sql-objects/operators/op-gt.js"), exports);
24
+ tslib_1.__exportStar(require("./sql-objects/operators/op-gte.js"), exports);
29
25
  tslib_1.__exportStar(require("./sql-objects/operators/op-ilike.js"), exports);
30
- tslib_1.__exportStar(require("./sql-objects/operators/op-like.js"), exports);
31
- tslib_1.__exportStar(require("./sql-objects/operators/op-is-not.js"), exports);
32
- tslib_1.__exportStar(require("./sql-objects/operators/op-is.js"), exports);
33
26
  tslib_1.__exportStar(require("./sql-objects/operators/op-in.js"), exports);
34
- tslib_1.__exportStar(require("./sql-objects/operators/op-between.js"), exports);
35
- tslib_1.__exportStar(require("./sql-objects/operators/op-lte.js"), exports);
27
+ tslib_1.__exportStar(require("./sql-objects/operators/op-is.js"), exports);
28
+ tslib_1.__exportStar(require("./sql-objects/operators/op-is-not.js"), exports);
29
+ tslib_1.__exportStar(require("./sql-objects/operators/op-like.js"), exports);
36
30
  tslib_1.__exportStar(require("./sql-objects/operators/op-lt.js"), exports);
37
- tslib_1.__exportStar(require("./sql-objects/operators/op-gte.js"), exports);
38
- tslib_1.__exportStar(require("./sql-objects/operators/op-gt.js"), exports);
39
- tslib_1.__exportStar(require("./sql-objects/operators/op-eq.js"), exports);
31
+ tslib_1.__exportStar(require("./sql-objects/operators/op-lte.js"), exports);
32
+ tslib_1.__exportStar(require("./sql-objects/operators/op-ne.js"), exports);
33
+ tslib_1.__exportStar(require("./sql-objects/operators/op-not-between.js"), exports);
34
+ tslib_1.__exportStar(require("./sql-objects/operators/op-not-exists.js"), exports);
35
+ tslib_1.__exportStar(require("./sql-objects/operators/op-not-ilike.js"), exports);
36
+ tslib_1.__exportStar(require("./sql-objects/operators/op-not-in.js"), exports);
37
+ tslib_1.__exportStar(require("./sql-objects/operators/op-not-like.js"), exports);
40
38
  tslib_1.__exportStar(require("./sql-objects/operators/op-or.js"), exports);
41
- tslib_1.__exportStar(require("./sql-objects/operators/comp-operator.js"), exports);
39
+ tslib_1.__exportStar(require("./sql-objects/order-column.js"), exports);
40
+ tslib_1.__exportStar(require("./sql-objects/raw-statement.js"), exports);
41
+ tslib_1.__exportStar(require("./sql-objects/table-name.js"), exports);
package/cjs/extensions.js CHANGED
@@ -1,16 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unRegisterSerializer = exports.registerSerializer = exports.serializers = void 0;
4
- exports.serializers = [];
5
- function registerSerializer(...extension) {
6
- for (const ext of extension) {
7
- if (!ext.dialect)
8
- throw new TypeError('A SerializerExtension must contain "dialect" property');
9
- exports.serializers.push(ext);
3
+ exports.SerializerRegistry = void 0;
4
+ class SerializerRegistry {
5
+ static get size() {
6
+ return this.serializers.length;
7
+ }
8
+ static register(...extension) {
9
+ for (const ext of extension) {
10
+ if (!ext.dialect)
11
+ throw new TypeError('A SerializerExtension must contain "dialect" property');
12
+ this.serializers.push(ext);
13
+ }
14
+ }
15
+ static forEach(callback, thisArg) {
16
+ return this.serializers.forEach(callback, thisArg);
17
+ }
18
+ static items() {
19
+ return this.serializers.values();
20
+ }
21
+ static unRegister(...extensions) {
22
+ this.serializers = extensions.filter(x => !extensions.includes(x));
23
+ }
24
+ static getAll(dialect) {
25
+ return this.serializers.filter(x => x.dialect === dialect);
26
+ }
27
+ static get(index) {
28
+ return this.serializers[index];
29
+ }
30
+ static findDialect(dialect) {
31
+ return this.serializers.find(x => x.dialect === dialect);
32
+ }
33
+ static has(extension) {
34
+ return !!this.serializers.find(x => x === extension);
10
35
  }
11
36
  }
12
- exports.registerSerializer = registerSerializer;
13
- function unRegisterSerializer(...extension) {
14
- exports.serializers = exports.serializers.filter(x => !extension.includes(x));
15
- }
16
- exports.unRegisterSerializer = unRegisterSerializer;
37
+ exports.SerializerRegistry = SerializerRegistry;
38
+ SerializerRegistry.serializers = [];
package/cjs/helpers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printArray = void 0;
3
+ exports.printArray = printArray;
4
4
  /**
5
5
  * Prints array with line feeding
6
6
  */
@@ -28,4 +28,3 @@ function printArray(arr, sep, lfLen) {
28
28
  out += (out ? '\n' : '') + line;
29
29
  return out;
30
30
  }
31
- exports.printArray = printArray;
package/cjs/index.js CHANGED
@@ -1,27 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.classes = exports.op = exports.unRegisterSerializer = exports.registerSerializer = void 0;
3
+ exports.op = exports.classes = void 0;
4
4
  const tslib_1 = require("tslib");
5
- var extensions_js_1 = require("./extensions.js");
6
- Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return extensions_js_1.registerSerializer; } });
7
- Object.defineProperty(exports, "unRegisterSerializer", { enumerable: true, get: function () { return extensions_js_1.unRegisterSerializer; } });
5
+ exports.classes = tslib_1.__importStar(require("./classes.ns.js"));
6
+ tslib_1.__exportStar(require("./enums.js"), exports);
7
+ tslib_1.__exportStar(require("./extensions.js"), exports);
8
8
  tslib_1.__exportStar(require("./helpers.js"), exports);
9
- tslib_1.__exportStar(require("./serializable.js"), exports);
10
- tslib_1.__exportStar(require("./serialize-context.js"), exports);
9
+ tslib_1.__exportStar(require("./op.initializers.js"), exports);
10
+ var op_initializers_js_1 = require("./op.initializers.js");
11
+ Object.defineProperty(exports, "op", { enumerable: true, get: function () { return op_initializers_js_1.op; } });
12
+ tslib_1.__exportStar(require("./query/delete-query.js"), exports);
13
+ tslib_1.__exportStar(require("./query/insert-query.js"), exports);
11
14
  tslib_1.__exportStar(require("./query/query.js"), exports);
12
15
  tslib_1.__exportStar(require("./query/select-query.js"), exports);
13
- tslib_1.__exportStar(require("./query/insert-query.js"), exports);
14
16
  tslib_1.__exportStar(require("./query/update-query.js"), exports);
15
- tslib_1.__exportStar(require("./query/delete-query.js"), exports);
17
+ tslib_1.__exportStar(require("./serializable.js"), exports);
18
+ tslib_1.__exportStar(require("./serialize-context.js"), exports);
19
+ tslib_1.__exportStar(require("./sql-objects/join-statement.js"), exports);
16
20
  tslib_1.__exportStar(require("./sql-objects/operator.js"), exports);
17
- tslib_1.__exportStar(require("./sql-objects/operators/logical-operator.js"), exports);
18
21
  tslib_1.__exportStar(require("./sql-objects/operators/comp-operator.js"), exports);
19
- tslib_1.__exportStar(require("./sql-objects/join-statement.js"), exports);
20
- tslib_1.__exportStar(require("./types.js"), exports);
21
- tslib_1.__exportStar(require("./enums.js"), exports);
22
+ tslib_1.__exportStar(require("./sql-objects/operators/logical-operator.js"), exports);
22
23
  tslib_1.__exportStar(require("./sqlobject.initializers.js"), exports);
23
- tslib_1.__exportStar(require("./op.initializers.js"), exports);
24
24
  tslib_1.__exportStar(require("./typeguards.js"), exports);
25
- var op_initializers_js_1 = require("./op.initializers.js");
26
- Object.defineProperty(exports, "op", { enumerable: true, get: function () { return op_initializers_js_1.op; } });
27
- exports.classes = tslib_1.__importStar(require("./classes.ns.js"));
25
+ tslib_1.__exportStar(require("./types.js"), exports);
@@ -1,6 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Not = exports.NotExists = exports.Exists = exports.IsNot = exports.Is = exports.Nilike = exports.NotILike = exports.Ilike = exports.NLike = exports.NotLike = exports.Like = exports.Nin = exports.NotIn = exports.In = exports.NotBetween = exports.Between = exports.LowerAndEqualTo = exports.Lte = exports.LowerThan = exports.Lt = exports.GreaterAnEqualTo = exports.Gte = exports.GreaterThan = exports.Gt = exports.NotEqual = exports.Ne = exports.Equal = exports.Eq = exports.Or = exports.And = exports.op = void 0;
3
+ exports.op = void 0;
4
+ exports.And = And;
5
+ exports.Between = Between;
6
+ exports.Eq = Eq;
7
+ exports.Equal = Eq;
8
+ exports.Exists = Exists;
9
+ exports.GreaterAnEqualTo = Gte;
10
+ exports.Gte = Gte;
11
+ exports.GreaterThan = Gt;
12
+ exports.Gt = Gt;
13
+ exports.Ilike = Ilike;
14
+ exports.In = In;
15
+ exports.Is = Is;
16
+ exports.IsNot = IsNot;
17
+ exports.Like = Like;
18
+ exports.LowerAndEqualTo = Lte;
19
+ exports.Lte = Lte;
20
+ exports.LowerThan = Lt;
21
+ exports.Lt = Lt;
22
+ exports.Ne = Ne;
23
+ exports.NotEqual = Ne;
24
+ exports.Nilike = NotILike;
25
+ exports.NotILike = NotILike;
26
+ exports.Nin = NotIn;
27
+ exports.NotIn = NotIn;
28
+ exports.NLike = NotLike;
29
+ exports.NotLike = NotLike;
30
+ exports.Not = Not;
31
+ exports.NotBetween = NotBetween;
32
+ exports.NotExists = NotExists;
33
+ exports.Or = Or;
4
34
  const logical_operator_js_1 = require("./sql-objects/operators/logical-operator.js");
5
35
  const op_and_js_1 = require("./sql-objects/operators/op-and.js");
6
36
  const op_between_js_1 = require("./sql-objects/operators/op-between.js");
@@ -26,98 +56,68 @@ const op_or_js_1 = require("./sql-objects/operators/op-or.js");
26
56
  function And(...args) {
27
57
  return new op_and_js_1.OpAnd(...args);
28
58
  }
29
- exports.And = And;
30
59
  function Or(...args) {
31
60
  return new op_or_js_1.OpOr(...args);
32
61
  }
33
- exports.Or = Or;
34
62
  function Eq(expression, value) {
35
63
  return new op_eq_js_1.OpEq(expression, value);
36
64
  }
37
- exports.Eq = Eq;
38
- exports.Equal = Eq;
39
65
  function Ne(expression, value) {
40
66
  return new op_ne_js_1.OpNe(expression, value);
41
67
  }
42
- exports.Ne = Ne;
43
- exports.NotEqual = Ne;
44
68
  function Gt(expression, value) {
45
69
  return new op_gt_js_1.OpGt(expression, value);
46
70
  }
47
- exports.Gt = Gt;
48
- exports.GreaterThan = Gt;
49
71
  function Gte(expression, value) {
50
72
  return new op_gte_js_1.OpGte(expression, value);
51
73
  }
52
- exports.Gte = Gte;
53
- exports.GreaterAnEqualTo = Gte;
54
74
  function Lt(expression, value) {
55
75
  return new op_lt_js_1.OpLt(expression, value);
56
76
  }
57
- exports.Lt = Lt;
58
- exports.LowerThan = Lt;
59
77
  function Lte(expression, value) {
60
78
  return new op_lte_js_1.OpLte(expression, value);
61
79
  }
62
- exports.Lte = Lte;
63
- exports.LowerAndEqualTo = Lte;
64
80
  function Between(expression, value1, value2) {
65
81
  const values = Array.isArray(value1) ? value1 : [value1, value2];
66
82
  return new op_between_js_1.OpBetween(expression, values);
67
83
  }
68
- exports.Between = Between;
69
84
  function NotBetween(expression, value1, value2) {
70
85
  const values = Array.isArray(value1) ? value1 : [value1, value2];
71
86
  return new op_not_between_js_1.OpNotBetween(expression, values);
72
87
  }
73
- exports.NotBetween = NotBetween;
74
88
  function In(expression, value) {
75
89
  return new op_in_js_1.OpIn(expression, value);
76
90
  }
77
- exports.In = In;
78
91
  function NotIn(expression, value) {
79
92
  return new op_not_in_js_1.OpNotIn(expression, value);
80
93
  }
81
- exports.NotIn = NotIn;
82
- exports.Nin = NotIn;
83
94
  function Like(expression, value) {
84
95
  return new op_like_js_1.OpLike(expression, value);
85
96
  }
86
- exports.Like = Like;
87
97
  function NotLike(expression, value) {
88
98
  return new op_not_like_js_1.OpNotLike(expression, value);
89
99
  }
90
- exports.NotLike = NotLike;
91
- exports.NLike = NotLike;
92
100
  function Ilike(expression, value) {
93
101
  return new op_ilike_js_1.OpILike(expression, value);
94
102
  }
95
- exports.Ilike = Ilike;
96
103
  function NotILike(expression, value) {
97
104
  return new op_not_ilike_js_1.OpNotILike(expression, value);
98
105
  }
99
- exports.NotILike = NotILike;
100
- exports.Nilike = NotILike;
101
106
  function Is(expression, value) {
102
107
  return new op_is_js_1.OpIs(expression, value);
103
108
  }
104
- exports.Is = Is;
105
109
  function IsNot(expression, value) {
106
110
  return new op_is_not_js_1.OpIsNot(expression, value);
107
111
  }
108
- exports.IsNot = IsNot;
109
112
  function Exists(expression) {
110
113
  return new op_exists_js_1.OpExists(expression);
111
114
  }
112
- exports.Exists = Exists;
113
115
  function NotExists(expression) {
114
116
  return new op_not_exists_js_1.OpNotExists(expression);
115
117
  }
116
- exports.NotExists = NotExists;
117
118
  function Not(expression) {
118
119
  return new op_not_js_1.OpNot(expression);
119
120
  }
120
- exports.Not = Not;
121
121
  const op = {
122
122
  and: And,
123
123
  or: Or,
@@ -9,8 +9,9 @@ const query_js_1 = require("./query.js");
9
9
  class DeleteQuery extends query_js_1.Query {
10
10
  constructor(tableName) {
11
11
  super();
12
- if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName)))
12
+ if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName))) {
13
13
  throw new TypeError('String or Raw instance required as first argument (tableName) for UpdateQuery');
14
+ }
14
15
  this._table = typeof tableName === 'string' ? new table_name_js_1.TableName(tableName) : tableName;
15
16
  }
16
17
  get _type() {
@@ -44,10 +45,9 @@ class DeleteQuery extends query_js_1.Query {
44
45
  if (!this._where)
45
46
  return '';
46
47
  const s = this._where._serialize(ctx);
47
- return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () => {
48
- /* istanbul ignore next */
49
- return s ? 'where ' + s : '';
50
- });
48
+ return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () =>
49
+ /* istanbul ignore next */
50
+ s ? 'where ' + s : '');
51
51
  }
52
52
  }
53
53
  exports.DeleteQuery = DeleteQuery;
@@ -9,10 +9,12 @@ const returning_query_js_1 = require("./returning-query.js");
9
9
  class InsertQuery extends returning_query_js_1.ReturningQuery {
10
10
  constructor(tableName, input) {
11
11
  super();
12
- if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName)))
12
+ if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName))) {
13
13
  throw new TypeError('String or Raw instance required as first argument (tableName) for InsertQuery');
14
- if (!input || !((typeof input === 'object' && !Array.isArray(input)) || input.isSelect))
14
+ }
15
+ if (!input || !((typeof input === 'object' && !Array.isArray(input)) || input.isSelect)) {
15
16
  throw new TypeError('Object or SelectQuery instance required as second argument (input) for InsertQuery');
17
+ }
16
18
  this._table = typeof tableName === 'string' ? new table_name_js_1.TableName(tableName) : tableName;
17
19
  this._input = input;
18
20
  }
@@ -177,7 +177,7 @@ class SelectQuery extends query_js_1.Query {
177
177
  */
178
178
  __serializeSelectColumns(ctx) {
179
179
  const arr = [];
180
- if (this._columns)
180
+ if (this._columns) {
181
181
  for (const t of this._columns) {
182
182
  const s = ctx.anyToSQL(t);
183
183
  // t._serialize(ctx);
@@ -191,6 +191,7 @@ class SelectQuery extends query_js_1.Query {
191
191
  arr.push(s);
192
192
  }
193
193
  }
194
+ }
194
195
  return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_COLUMNS, arr, () => (0, helpers_js_1.printArray)(arr) || '*');
195
196
  }
196
197
  /**
@@ -198,7 +199,7 @@ class SelectQuery extends query_js_1.Query {
198
199
  */
199
200
  __serializeFrom(ctx) {
200
201
  const arr = [];
201
- if (this._tables)
202
+ if (this._tables) {
202
203
  for (const t of this._tables) {
203
204
  const s = t._serialize(ctx);
204
205
  /* istanbul ignore else */
@@ -212,6 +213,7 @@ class SelectQuery extends query_js_1.Query {
212
213
  arr.push(s);
213
214
  }
214
215
  }
216
+ }
215
217
  return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_FROM, arr, () => {
216
218
  const s = arr.join(',');
217
219
  return s ? 'from' + (s.substring(0, 1) !== '\n' ? ' ' : '') + s : '';
@@ -222,16 +224,15 @@ class SelectQuery extends query_js_1.Query {
222
224
  */
223
225
  __serializeJoins(ctx) {
224
226
  const arr = [];
225
- if (this._joins)
227
+ if (this._joins) {
226
228
  for (const t of this._joins) {
227
229
  const s = t._serialize(ctx);
228
230
  /* istanbul ignore else */
229
231
  if (s)
230
232
  arr.push(s);
231
233
  }
232
- return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_JOIN, arr, () => {
233
- return arr.join('\n');
234
- });
234
+ }
235
+ return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_JOIN, arr, () => arr.join('\n'));
235
236
  }
236
237
  /**
237
238
  *
@@ -240,23 +241,23 @@ class SelectQuery extends query_js_1.Query {
240
241
  if (!this._where)
241
242
  return '';
242
243
  const s = this._where._serialize(ctx);
243
- return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () => {
244
- /* istanbul ignore next */
245
- return s ? 'where ' + s : '';
246
- });
244
+ return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () =>
245
+ /* istanbul ignore next */
246
+ s ? 'where ' + s : '');
247
247
  }
248
248
  /**
249
249
  *
250
250
  */
251
251
  __serializeGroupColumns(ctx) {
252
252
  const arr = [];
253
- if (this._groupBy)
253
+ if (this._groupBy) {
254
254
  for (const t of this._groupBy) {
255
255
  const s = t._serialize(ctx);
256
256
  /* istanbul ignore else */
257
257
  if (s)
258
258
  arr.push(s);
259
259
  }
260
+ }
260
261
  return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_GROUPBY, arr, () => {
261
262
  const s = (0, helpers_js_1.printArray)(arr);
262
263
  return s ? 'group by ' + s : '';
@@ -264,13 +265,14 @@ class SelectQuery extends query_js_1.Query {
264
265
  }
265
266
  __serializeOrderColumns(ctx) {
266
267
  const arr = [];
267
- if (this._orderBy)
268
+ if (this._orderBy) {
268
269
  for (const t of this._orderBy) {
269
270
  const s = t._serialize(ctx);
270
271
  /* istanbul ignore else */
271
272
  if (s)
272
273
  arr.push(s);
273
274
  }
275
+ }
274
276
  return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_ORDERBY, arr, () => {
275
277
  const s = (0, helpers_js_1.printArray)(arr);
276
278
  return s ? 'order by ' + s : '';
@@ -10,10 +10,12 @@ const returning_query_js_1 = require("./returning-query.js");
10
10
  class UpdateQuery extends returning_query_js_1.ReturningQuery {
11
11
  constructor(tableName, input) {
12
12
  super();
13
- if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName)))
13
+ if (!tableName || !(typeof tableName === 'string' || (0, typeguards_js_1.isRawStatement)(tableName))) {
14
14
  throw new TypeError('String or Raw instance required as first argument (tableName) for UpdateQuery');
15
- if (!input || !((typeof input === 'object' && !Array.isArray(input)) || input.isSelect))
15
+ }
16
+ if (!input || !((typeof input === 'object' && !Array.isArray(input)) || input.isSelect)) {
16
17
  throw new TypeError('Object or Raw instance required as second argument (input) for UpdateQuery');
18
+ }
17
19
  this._table = typeof tableName === 'string' ? new table_name_js_1.TableName(tableName) : tableName;
18
20
  this._input = input;
19
21
  }
@@ -70,10 +72,9 @@ class UpdateQuery extends returning_query_js_1.ReturningQuery {
70
72
  if (!this._where)
71
73
  return '';
72
74
  const s = this._where._serialize(ctx);
73
- return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () => {
74
- /* istanbul ignore next */
75
- return s ? 'where ' + s : '';
76
- });
75
+ return ctx.serialize(enums_js_1.SerializationType.CONDITIONS_BLOCK, s, () =>
76
+ /* istanbul ignore next */
77
+ s ? 'where ' + s : '');
77
78
  }
78
79
  }
79
80
  exports.UpdateQuery = UpdateQuery;
@@ -79,7 +79,7 @@ class SerializeContext {
79
79
  return s;
80
80
  }
81
81
  }
82
- for (const ext of extensions_js_1.serializers) {
82
+ for (const ext of extensions_js_1.SerializerRegistry.items()) {
83
83
  if (ext.dialect === this.dialect && ext.serialize) {
84
84
  const s = ext.serialize(this, type, o, fallback);
85
85
  if (s != null)
@@ -163,7 +163,7 @@ class SerializeContext {
163
163
  return false;
164
164
  if (this.reservedWords.includes(s.toLowerCase()))
165
165
  return true;
166
- for (const ext of extensions_js_1.serializers) {
166
+ for (const ext of extensions_js_1.SerializerRegistry.items()) {
167
167
  if (ext.dialect === this.dialect && ext.isReservedWord) {
168
168
  if (ext.isReservedWord(this, s))
169
169
  return true;
@@ -26,11 +26,12 @@ class CaseStatement extends serializable_js_1.Serializable {
26
26
  * Defines "then" part of Case expression.
27
27
  */
28
28
  then(value) {
29
- if (this._condition)
29
+ if (this._condition) {
30
30
  this._expressions.push({
31
31
  condition: this._condition,
32
32
  value,
33
33
  });
34
+ }
34
35
  return this;
35
36
  }
36
37
  /**
@@ -28,11 +28,9 @@ class GroupColumn extends base_field_js_1.BaseField {
28
28
  field: this._field,
29
29
  isReservedWord: !!(this._field && ctx.isReservedWord(this._field)),
30
30
  };
31
- return ctx.serialize(this._type, o, () => {
32
- return ((this._schema ? this._schema + '.' : '') +
33
- (this._table ? this._table + '.' : '') +
34
- (o.isReservedWord ? '"' + this._field + '"' : this._field));
35
- });
31
+ return ctx.serialize(this._type, o, () => (this._schema ? this._schema + '.' : '') +
32
+ (this._table ? this._table + '.' : '') +
33
+ (o.isReservedWord ? '"' + this._field + '"' : this._field));
36
34
  }
37
35
  }
38
36
  exports.GroupColumn = GroupColumn;
@@ -11,8 +11,9 @@ class JoinStatement extends serializable_js_1.Serializable {
11
11
  super();
12
12
  this._conditions = new op_and_js_1.OpAnd();
13
13
  // noinspection SuspiciousTypeOfGuard
14
- if (!((0, typeguards_js_1.isSelectQuery)(table) || (0, typeguards_js_1.isRawStatement)(table) || (0, typeguards_js_1.isTableName)(table) || typeof table === 'string'))
14
+ if (!((0, typeguards_js_1.isSelectQuery)(table) || (0, typeguards_js_1.isRawStatement)(table) || (0, typeguards_js_1.isTableName)(table) || typeof table === 'string')) {
15
15
  throw new TypeError('Table name, select query or raw object required for Join');
16
+ }
16
17
  this._joinType = joinType;
17
18
  this._table = typeof table === 'string' ? new table_name_js_1.TableName(table) : table;
18
19
  }
@@ -62,7 +63,7 @@ class JoinStatement extends serializable_js_1.Serializable {
62
63
  const alias = this._table._alias;
63
64
  if (!alias)
64
65
  throw new Error('Alias required for sub-select in Join');
65
- out += ' (' + (lf ? '\n\t' : '') + o.table + (lf ? '\n\b' : '') + ')' + ' ' + alias;
66
+ out += ' (' + (lf ? '\n\t' : '') + o.table + (lf ? '\n\b' : '') + ') ' + alias;
66
67
  }
67
68
  else
68
69
  out += ' ' + o.table;
@@ -65,14 +65,12 @@ class CompOperator extends operator_js_1.Operator {
65
65
  }
66
66
  return result;
67
67
  }
68
- else {
69
- const result = {
70
- expression: isRight || typeof x !== 'string' ? ctx.anyToSQL(x) : x,
71
- };
72
- if (isRight || typeof x !== 'string')
73
- result.isArray = Array.isArray(x);
74
- return result;
75
- }
68
+ const result = {
69
+ expression: isRight || typeof x !== 'string' ? ctx.anyToSQL(x) : x,
70
+ };
71
+ if (isRight || typeof x !== 'string')
72
+ result.isArray = Array.isArray(x);
73
+ return result;
76
74
  }
77
75
  __serialize(ctx, o) {
78
76
  return ctx.serialize(this._type, o, (_ctx, _o) => this.__defaultSerialize(_ctx, _o));
@@ -9,8 +9,9 @@ class OpExists extends comp_operator_js_1.CompOperator {
9
9
  super(query);
10
10
  this._operatorType = enums_js_1.OperatorType.exists;
11
11
  this._symbol = 'exists';
12
- if (!(typeof query === 'object' && (0, typeguards_js_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
16
  _serialize(ctx) {
16
17
  const left = this.__serializeItem(ctx, this._left);
@@ -14,9 +14,7 @@ class OpNot extends operator_js_1.Operator {
14
14
  }
15
15
  _serialize(ctx) {
16
16
  const expression = ctx.anyToSQL(this._expression);
17
- return ctx.serialize(this._type, expression, () => {
18
- return expression ? 'not ' + expression : '';
19
- });
17
+ return ctx.serialize(this._type, expression, () => (expression ? 'not ' + expression : ''));
20
18
  }
21
19
  }
22
20
  exports.OpNot = OpNot;
@@ -31,12 +31,10 @@ class OrderColumn extends base_field_js_1.BaseField {
31
31
  descending: !!this._descending,
32
32
  isReservedWord: !!(this._field && ctx.isReservedWord(this._field)),
33
33
  };
34
- return ctx.serialize(this._type, o, () => {
35
- return ((o.schema ? o.schema + '.' : '') +
36
- (o.table ? o.table + '.' : '') +
37
- (o.isReservedWord ? '"' + o.field + '"' : o.field) +
38
- (o.descending ? ' desc' : ''));
39
- });
34
+ return ctx.serialize(this._type, o, () => (o.schema ? o.schema + '.' : '') +
35
+ (o.table ? o.table + '.' : '') +
36
+ (o.isReservedWord ? '"' + o.field + '"' : o.field) +
37
+ (o.descending ? ' desc' : ''));
40
38
  }
41
39
  }
42
40
  exports.OrderColumn = OrderColumn;
@@ -23,9 +23,7 @@ class ReturningColumn extends base_field_js_1.BaseField {
23
23
  };
24
24
  ctx.returningFields = ctx.returningFields || [];
25
25
  ctx.returningFields.push(o);
26
- return ctx.serialize(this._type, o, () => {
27
- return ctx.escapeReserved(o.field) + (o.alias ? ' as ' + ctx.escapeReserved(o.alias) : '');
28
- });
26
+ return ctx.serialize(this._type, o, () => ctx.escapeReserved(o.field) + (o.alias ? ' as ' + ctx.escapeReserved(o.alias) : ''));
29
27
  }
30
28
  }
31
29
  exports.ReturningColumn = ReturningColumn;
@@ -56,13 +56,14 @@ class StringAGGStatement extends serializable_js_1.Serializable {
56
56
  }
57
57
  __serializeOrderColumns(ctx) {
58
58
  const arr = [];
59
- if (this._orderBy)
59
+ if (this._orderBy) {
60
60
  for (const t of this._orderBy) {
61
61
  const s = t._serialize(ctx);
62
62
  /* istanbul ignore else */
63
63
  if (s)
64
64
  arr.push(s);
65
65
  }
66
+ }
66
67
  return ctx.serialize(enums_js_1.SerializationType.SELECT_QUERY_ORDERBY, arr, () => {
67
68
  const s = (0, helpers_js_1.printArray)(arr);
68
69
  return s ? 'order by ' + s : '';