@sqb/builder 4.12.0 → 4.13.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.
- package/cjs/classes.ns.js +24 -24
- package/cjs/extensions.js +34 -12
- package/cjs/helpers.js +1 -2
- package/cjs/index.js +14 -16
- package/cjs/op.initializers.js +31 -31
- package/cjs/query/delete-query.js +5 -5
- package/cjs/query/insert-query.js +4 -2
- package/cjs/query/select-query.js +14 -12
- package/cjs/query/update-query.js +7 -6
- package/cjs/serialize-context.js +2 -2
- package/cjs/sql-objects/case-statement.js +2 -1
- package/cjs/sql-objects/group-column.js +3 -5
- package/cjs/sql-objects/join-statement.js +3 -2
- package/cjs/sql-objects/operators/comp-operator.js +6 -8
- package/cjs/sql-objects/operators/op-exists.js +2 -1
- package/cjs/sql-objects/operators/op-not.js +1 -3
- package/cjs/sql-objects/order-column.js +4 -6
- package/cjs/sql-objects/returning-column.js +1 -3
- package/cjs/sql-objects/string-agg-statement.js +2 -1
- package/cjs/sqlobject.initializers.js +28 -29
- package/cjs/typeguards.js +19 -20
- package/esm/classes.ns.js +24 -24
- package/esm/extensions.js +32 -9
- package/esm/index.js +12 -12
- package/esm/op.initializers.js +1 -1
- package/esm/query/delete-query.js +5 -5
- package/esm/query/insert-query.js +4 -2
- package/esm/query/select-query.js +14 -12
- package/esm/query/update-query.js +7 -6
- package/esm/serialize-context.js +3 -3
- package/esm/sql-objects/case-statement.js +2 -1
- package/esm/sql-objects/group-column.js +3 -5
- package/esm/sql-objects/join-statement.js +3 -2
- package/esm/sql-objects/operators/comp-operator.js +6 -8
- package/esm/sql-objects/operators/op-exists.js +2 -1
- package/esm/sql-objects/operators/op-not.js +1 -3
- package/esm/sql-objects/order-column.js +4 -6
- package/esm/sql-objects/returning-column.js +1 -3
- package/esm/sql-objects/string-agg-statement.js +2 -1
- package/package.json +4 -3
- package/types/classes.ns.d.ts +24 -24
- package/types/extensions.d.ts +12 -3
- package/types/index.d.ts +12 -12
- package/types/op.initializers.d.ts +1 -1
- 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-
|
|
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-
|
|
25
|
-
tslib_1.__exportStar(require("./sql-objects/operators/op-
|
|
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-
|
|
35
|
-
tslib_1.__exportStar(require("./sql-objects/operators/op-
|
|
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-
|
|
38
|
-
tslib_1.__exportStar(require("./sql-objects/operators/op-
|
|
39
|
-
tslib_1.__exportStar(require("./sql-objects/operators/op-
|
|
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/
|
|
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.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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.
|
|
13
|
-
|
|
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 =
|
|
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.
|
|
3
|
+
exports.op = exports.classes = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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("./
|
|
10
|
-
|
|
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("./
|
|
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/
|
|
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
|
-
|
|
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);
|
package/cjs/op.initializers.js
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
233
|
-
|
|
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
|
-
|
|
245
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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;
|
package/cjs/serialize-context.js
CHANGED
|
@@ -79,7 +79,7 @@ class SerializeContext {
|
|
|
79
79
|
return s;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
for (const ext of extensions_js_1.
|
|
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.
|
|
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
|
-
|
|
33
|
-
|
|
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' : '') + ')
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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 : '';
|