@stamhoofd/sql 2.17.0 → 2.18.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/dist/src/SQL.d.ts +3 -0
- package/dist/src/SQL.d.ts.map +1 -1
- package/dist/src/SQL.js +7 -0
- package/dist/src/SQL.js.map +1 -1
- package/dist/src/SQLDelete.d.ts +1 -1
- package/dist/src/SQLJoin.d.ts +1 -1
- package/dist/src/SQLJsonExpressions.d.ts +3 -2
- package/dist/src/SQLJsonExpressions.d.ts.map +1 -1
- package/dist/src/SQLJsonExpressions.js +5 -2
- package/dist/src/SQLJsonExpressions.js.map +1 -1
- package/dist/src/SQLSelect.d.ts +1 -1
- package/dist/src/SQLSelect.js +1 -1
- package/dist/src/SQLSelect.js.map +1 -1
- package/dist/src/SQLWhere.d.ts +13 -3
- package/dist/src/SQLWhere.d.ts.map +1 -1
- package/dist/src/SQLWhere.js +57 -42
- package/dist/src/SQLWhere.js.map +1 -1
- package/dist/src/filters/SQLFilter.d.ts.map +1 -1
- package/dist/src/filters/SQLFilter.js +65 -22
- package/dist/src/filters/SQLFilter.js.map +1 -1
- package/dist/src/filters/SQLSorter.d.ts.map +1 -1
- package/dist/src/filters/SQLSorter.js +7 -0
- package/dist/src/filters/SQLSorter.js.map +1 -1
- package/package.json +2 -2
- package/src/SQL.ts +9 -0
- package/src/SQLJsonExpressions.ts +5 -2
- package/src/SQLSelect.ts +1 -1
- package/src/SQLWhere.ts +82 -53
- package/src/filters/SQLFilter.ts +88 -51
- package/src/filters/SQLSorter.ts +8 -0
|
@@ -25,13 +25,55 @@ function notSQLFilterCompiler(filter, filters) {
|
|
|
25
25
|
const andRunner = andSQLFilterCompiler(filter, filters);
|
|
26
26
|
return new SQLWhere_1.SQLWhereNot(andRunner);
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
if (
|
|
30
|
-
|
|
28
|
+
function guardFilterCompareValue(val) {
|
|
29
|
+
if (val instanceof Date) {
|
|
30
|
+
return val;
|
|
31
|
+
}
|
|
32
|
+
if (typeof val === 'string') {
|
|
33
|
+
return val;
|
|
34
|
+
}
|
|
35
|
+
if (typeof val === 'number') {
|
|
36
|
+
return val;
|
|
37
|
+
}
|
|
38
|
+
if (typeof val === 'boolean') {
|
|
39
|
+
return val;
|
|
31
40
|
}
|
|
41
|
+
if (val === null) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
if (typeof val === 'object' && "$" in val) {
|
|
45
|
+
if (val["$"] === '$now') {
|
|
46
|
+
return val;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
throw new Error('Invalid compare value. Expected a string, number, boolean, date or null.');
|
|
32
50
|
}
|
|
33
|
-
function
|
|
34
|
-
if (
|
|
51
|
+
function doNormalizeValue(val) {
|
|
52
|
+
if (val instanceof Date) {
|
|
53
|
+
return val;
|
|
54
|
+
}
|
|
55
|
+
if (typeof val === 'string') {
|
|
56
|
+
return val.toLocaleLowerCase();
|
|
57
|
+
}
|
|
58
|
+
if (typeof val === 'boolean') {
|
|
59
|
+
return val === true ? 1 : 0;
|
|
60
|
+
}
|
|
61
|
+
if (val === null) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
if (typeof val === 'object' && "$" in val) {
|
|
65
|
+
const specialValue = val["$"];
|
|
66
|
+
switch (specialValue) {
|
|
67
|
+
case '$now':
|
|
68
|
+
return doNormalizeValue(new Date());
|
|
69
|
+
default:
|
|
70
|
+
throw new Error('Unsupported magic value ' + specialValue);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return val;
|
|
74
|
+
}
|
|
75
|
+
function guardScalar(s) {
|
|
76
|
+
if (typeof s !== 'string' && typeof s !== 'number' && typeof s !== 'boolean' && !(s instanceof Date) && s !== null) {
|
|
35
77
|
throw new Error('Invalid scalar value');
|
|
36
78
|
}
|
|
37
79
|
}
|
|
@@ -58,7 +100,11 @@ function createSQLFilterNamespace(definitions) {
|
|
|
58
100
|
};
|
|
59
101
|
}
|
|
60
102
|
function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJSONObject = false, isJSONValue = false, nullable = false } = {}) {
|
|
61
|
-
|
|
103
|
+
normalizeValue = normalizeValue ?? ((v) => v);
|
|
104
|
+
const norm = (val) => {
|
|
105
|
+
const n = doNormalizeValue(guardFilterCompareValue(val));
|
|
106
|
+
return normalizeValue(n);
|
|
107
|
+
};
|
|
62
108
|
const convertToExpression = isJSONValue ? SQLExpressions_1.scalarToSQLJSONExpression : SQLExpressions_1.scalarToSQLExpression;
|
|
63
109
|
return (filter, filters) => {
|
|
64
110
|
if (typeof filter === 'string' || typeof filter === 'number' || typeof filter === 'boolean' || filter === null || filter === undefined) {
|
|
@@ -71,7 +117,6 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
71
117
|
}
|
|
72
118
|
const f = filter;
|
|
73
119
|
if ('$eq' in f) {
|
|
74
|
-
guardScalar(f.$eq);
|
|
75
120
|
if (isJSONObject) {
|
|
76
121
|
const v = norm(f.$eq);
|
|
77
122
|
// if (typeof v === 'string') {
|
|
@@ -82,7 +127,7 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
82
127
|
// );
|
|
83
128
|
// }
|
|
84
129
|
// else
|
|
85
|
-
return new
|
|
130
|
+
return new SQLJsonExpressions_1.SQLJsonContains(sqlExpression, convertToExpression(JSON.stringify(v)));
|
|
86
131
|
}
|
|
87
132
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, convertToExpression(norm(f.$eq)));
|
|
88
133
|
}
|
|
@@ -104,12 +149,12 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
104
149
|
// that makes comparing more difficult, to combat this, we still need to use SQLJsonOverlaps with the JSON null value
|
|
105
150
|
return new SQLWhere_1.SQLWhereOr([
|
|
106
151
|
new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()), // checks path not exists (= mysql null)
|
|
107
|
-
new
|
|
108
|
-
)
|
|
152
|
+
new SQLJsonExpressions_1.SQLJsonOverlaps(sqlExpression, convertToExpression(JSON.stringify(v)) // contains json null
|
|
153
|
+
)
|
|
109
154
|
]);
|
|
110
155
|
}
|
|
111
156
|
// else
|
|
112
|
-
return new
|
|
157
|
+
return new SQLJsonExpressions_1.SQLJsonOverlaps(sqlExpression, convertToExpression(JSON.stringify(v)));
|
|
113
158
|
}
|
|
114
159
|
if (nullIncluded) {
|
|
115
160
|
const remaining = v.filter(v => v !== null);
|
|
@@ -124,15 +169,13 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
124
169
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLArray(v));
|
|
125
170
|
}
|
|
126
171
|
if ('$neq' in f) {
|
|
127
|
-
guardScalar(f.$neq);
|
|
128
172
|
if (isJSONObject) {
|
|
129
|
-
const v = norm(f.$
|
|
130
|
-
return new SQLWhere_1.
|
|
173
|
+
const v = norm(f.$neq);
|
|
174
|
+
return new SQLWhere_1.SQLWhereNot(new SQLJsonExpressions_1.SQLJsonContains(sqlExpression, convertToExpression(JSON.stringify(v))));
|
|
131
175
|
}
|
|
132
176
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.NotEqual, convertToExpression(norm(f.$neq)));
|
|
133
177
|
}
|
|
134
178
|
if ('$gt' in f) {
|
|
135
|
-
guardScalar(f.$gt);
|
|
136
179
|
if (isJSONObject) {
|
|
137
180
|
throw new Error('Greater than is not supported in this place');
|
|
138
181
|
}
|
|
@@ -144,7 +187,6 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
144
187
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Greater, convertToExpression(norm(f.$gt)));
|
|
145
188
|
}
|
|
146
189
|
if ('$gte' in f) {
|
|
147
|
-
guardScalar(f.$gte);
|
|
148
190
|
if (isJSONObject) {
|
|
149
191
|
throw new Error('Greater than is not supported in this place');
|
|
150
192
|
}
|
|
@@ -155,7 +197,6 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
155
197
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.GreaterEqual, convertToExpression(norm(f.$gte)));
|
|
156
198
|
}
|
|
157
199
|
if ('$lte' in f) {
|
|
158
|
-
guardScalar(f.$lte);
|
|
159
200
|
if (isJSONObject) {
|
|
160
201
|
throw new Error('Greater than is not supported in this place');
|
|
161
202
|
}
|
|
@@ -174,7 +215,6 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
174
215
|
return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.LessEqual, convertToExpression(norm(f.$lte)));
|
|
175
216
|
}
|
|
176
217
|
if ('$lt' in f) {
|
|
177
|
-
guardScalar(f.$lt);
|
|
178
218
|
if (isJSONObject) {
|
|
179
219
|
throw new Error('Less than is not supported in this place');
|
|
180
220
|
}
|
|
@@ -193,15 +233,18 @@ function createSQLExpressionFilterCompiler(sqlExpression, { normalizeValue, isJS
|
|
|
193
233
|
return base;
|
|
194
234
|
}
|
|
195
235
|
if ('$contains' in f) {
|
|
196
|
-
|
|
236
|
+
const needle = norm(f.$contains);
|
|
237
|
+
if (typeof needle !== 'string') {
|
|
238
|
+
throw new Error('Invalid needle for contains filter');
|
|
239
|
+
}
|
|
197
240
|
if (isJSONObject) {
|
|
198
|
-
return new SQLWhere_1.SQLWhereEqual(new SQLJsonExpressions_1.SQLJsonSearch(sqlExpression, 'one', convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(
|
|
241
|
+
return new SQLWhere_1.SQLWhereEqual(new SQLJsonExpressions_1.SQLJsonSearch(sqlExpression, 'one', convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%')), SQLWhere_1.SQLWhereSign.NotEqual, new SQLExpressions_1.SQLNull());
|
|
199
242
|
}
|
|
200
243
|
if (isJSONValue) {
|
|
201
244
|
// We need to do case insensitive search, so need to convert the sqlExpression from utf8mb4 to varchar
|
|
202
|
-
return new SQLWhere_1.SQLWhereLike(new SQLExpressions_1.SQLCast(new SQLJsonExpressions_1.SQLJsonUnquote(sqlExpression), 'CHAR'), convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(
|
|
245
|
+
return new SQLWhere_1.SQLWhereLike(new SQLExpressions_1.SQLCast(new SQLJsonExpressions_1.SQLJsonUnquote(sqlExpression), 'CHAR'), convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%'));
|
|
203
246
|
}
|
|
204
|
-
return new SQLWhere_1.SQLWhereLike(sqlExpression, convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(
|
|
247
|
+
return new SQLWhere_1.SQLWhereLike(sqlExpression, convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%'));
|
|
205
248
|
}
|
|
206
249
|
throw new Error('Invalid filter ' + JSON.stringify(f));
|
|
207
250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLSorter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLSorter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGhE,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAC3F,KAAK,CAAC,SAAS,EAAE,mBAAmB,GAAG,UAAU,CAAA;CACpD,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,GAAG,UAAU,CAwBhG"}
|
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.compileToSQLSorter = compileToSQLSorter;
|
|
4
4
|
const SQLOrderBy_1 = require("../SQLOrderBy");
|
|
5
|
+
const simple_errors_1 = require("@simonbackx/simple-errors");
|
|
5
6
|
function compileToSQLSorter(sortBy, definitions) {
|
|
7
|
+
if (sortBy.length === 0) {
|
|
8
|
+
throw new simple_errors_1.SimpleError({
|
|
9
|
+
code: 'empty_sort',
|
|
10
|
+
message: 'No sort passed'
|
|
11
|
+
});
|
|
12
|
+
}
|
|
6
13
|
const sorters = [];
|
|
7
14
|
for (const s of sortBy) {
|
|
8
15
|
const d = definitions[s.key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;AAYA,gDAwBC;AAjCD,8CAAgE;AAChE,6DAAwD;AAQxD,SAAgB,kBAAkB,CAAC,MAAgB,EAAE,WAA+B;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,2BAAW,CAAC;YAClB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,gBAAgB;SAC5B,CAAC,CAAA;IACN,CAAC;IAED,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,uBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/sql",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.18.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "a47aa5bb6ad71d1e6a2f88bc203caa5acf4f497f"
|
|
19
19
|
}
|
package/src/SQL.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { SQLColumnExpression, SQLSafeValue, SQLTableExpression, SQLWildcardSelec
|
|
|
5
5
|
import { SQLJoin, SQLJoinType } from "./SQLJoin";
|
|
6
6
|
import { SQLJsonExtract, SQLJsonLength } from "./SQLJsonExpressions";
|
|
7
7
|
import { parseTable, SQLSelect } from "./SQLSelect";
|
|
8
|
+
import { ParseWhereArguments, SQLEmptyWhere, SQLWhere } from "./SQLWhere";
|
|
8
9
|
|
|
9
10
|
class StaticSQL {
|
|
10
11
|
wildcard(namespace?: string) {
|
|
@@ -44,6 +45,14 @@ class StaticSQL {
|
|
|
44
45
|
return new SQLSelect(...columns)
|
|
45
46
|
}
|
|
46
47
|
|
|
48
|
+
where(...args: ParseWhereArguments): SQLWhere {
|
|
49
|
+
return new SQLEmptyWhere().and(...args)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
whereNot(...args: ParseWhereArguments): SQLWhere {
|
|
53
|
+
return new SQLEmptyWhere().andNot(...args)
|
|
54
|
+
}
|
|
55
|
+
|
|
47
56
|
delete(): InstanceType<typeof SQLDelete> {
|
|
48
57
|
return new SQLDelete()
|
|
49
58
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SQLExpression, SQLExpressionOptions, SQLQuery, joinSQLQuery } from "./SQLExpression";
|
|
2
2
|
import { SQLSafeValue } from "./SQLExpressions";
|
|
3
|
+
import { SQLWhere } from "./SQLWhere";
|
|
3
4
|
|
|
4
5
|
export class SQLJsonUnquote implements SQLExpression {
|
|
5
6
|
target: SQLExpression
|
|
@@ -97,12 +98,13 @@ export class SQLJsonSearch implements SQLExpression {
|
|
|
97
98
|
/**
|
|
98
99
|
* JSON_CONTAINS(target, candidate[, path])
|
|
99
100
|
*/
|
|
100
|
-
export class SQLJsonContains
|
|
101
|
+
export class SQLJsonContains extends SQLWhere {
|
|
101
102
|
target: SQLExpression
|
|
102
103
|
candidate: SQLExpression;
|
|
103
104
|
path: SQLExpression|null;
|
|
104
105
|
|
|
105
106
|
constructor(target: SQLExpression, candidate: SQLExpression, path: SQLExpression|null = null) {
|
|
107
|
+
super()
|
|
106
108
|
this.target = target;
|
|
107
109
|
this.candidate = candidate;
|
|
108
110
|
this.path = path;
|
|
@@ -127,11 +129,12 @@ export class SQLJsonContains implements SQLExpression {
|
|
|
127
129
|
/**
|
|
128
130
|
* JSON_CONTAINS(json_doc1, json_doc2)
|
|
129
131
|
*/
|
|
130
|
-
export class SQLJsonOverlaps
|
|
132
|
+
export class SQLJsonOverlaps extends SQLWhere {
|
|
131
133
|
jsonDoc1: SQLExpression
|
|
132
134
|
jsonDoc2: SQLExpression;
|
|
133
135
|
|
|
134
136
|
constructor(jsonDoc1: SQLExpression, jsonDoc2: SQLExpression) {
|
|
137
|
+
super()
|
|
135
138
|
this.jsonDoc1 = jsonDoc1;
|
|
136
139
|
this.jsonDoc2 = jsonDoc2;
|
|
137
140
|
}
|
package/src/SQLSelect.ts
CHANGED
|
@@ -124,7 +124,7 @@ export class SQLSelect<T = SQLResultNamespacedRow> extends Whereable(Orderable(E
|
|
|
124
124
|
const {query, params} = normalizeSQLQuery(this.getSQL())
|
|
125
125
|
|
|
126
126
|
// when debugging: log all queries
|
|
127
|
-
|
|
127
|
+
console.log(query, params);
|
|
128
128
|
const [rows] = await Database.select(query, params, {nestTables: true});
|
|
129
129
|
|
|
130
130
|
// Now map aggregated queries to the correct namespace
|
package/src/SQLWhere.ts
CHANGED
|
@@ -20,92 +20,75 @@ function assertWhereable(o: any): any {
|
|
|
20
20
|
|
|
21
21
|
export function Whereable<Sup extends Constructor<{}>>(Base: Sup) {
|
|
22
22
|
return class extends Base {
|
|
23
|
-
_where: SQLWhere|null = null
|
|
23
|
+
_where: SQLWhere | null = null
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return whereOrColumn as SQLWhere;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (value !== undefined) {
|
|
31
|
-
return new SQLWhereEqual(
|
|
32
|
-
typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
|
|
33
|
-
signOrValue as SQLWhereSign,
|
|
34
|
-
readDynamicSQLExpression(value)
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
return new SQLWhereEqual(
|
|
38
|
-
typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
|
|
39
|
-
SQLWhereSign.Equal,
|
|
40
|
-
readDynamicSQLExpression(signOrValue)
|
|
41
|
-
)
|
|
25
|
+
get __where() {
|
|
26
|
+
return this._where ?? new SQLEmptyWhere();
|
|
42
27
|
}
|
|
43
28
|
|
|
44
|
-
|
|
45
29
|
where<T>(this: T, ...args: ParseWhereArguments): T {
|
|
46
30
|
const me = assertWhereable(this)
|
|
47
|
-
|
|
48
|
-
const w = me.parseWhere(...args);
|
|
49
|
-
if (!me._where) {
|
|
50
|
-
me._where = w;
|
|
51
|
-
return me;
|
|
52
|
-
}
|
|
53
|
-
me._where = me._where.and(w);
|
|
31
|
+
me._where = me.__where.and(...args)
|
|
54
32
|
return me;
|
|
55
33
|
}
|
|
56
34
|
|
|
57
35
|
andWhere<T>(this: T, ...args: ParseWhereArguments): T {
|
|
58
36
|
const me = assertWhereable(this)
|
|
59
|
-
|
|
37
|
+
me._where = me.__where.and(...args)
|
|
38
|
+
return me;
|
|
60
39
|
}
|
|
61
40
|
|
|
62
41
|
orWhere<T>(this: T, ...args: ParseWhereArguments): T {
|
|
63
42
|
const me = assertWhereable(this)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
me._where = w;
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
me._where = me._where.or(w);
|
|
70
|
-
return this;
|
|
43
|
+
me._where = me.__where.or(...args)
|
|
44
|
+
return me;
|
|
71
45
|
}
|
|
72
46
|
|
|
73
47
|
whereNot<T>(this: T, ...args: ParseWhereArguments): T {
|
|
74
48
|
const me = assertWhereable(this)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
me._where = w;
|
|
78
|
-
return this;
|
|
79
|
-
}
|
|
80
|
-
me._where = me._where.and(w);
|
|
81
|
-
return this;
|
|
49
|
+
me._where = me.__where.andNot(...args)
|
|
50
|
+
return me;
|
|
82
51
|
}
|
|
83
52
|
|
|
84
53
|
andWhereNot<T>(this: T, ...args: ParseWhereArguments): T {
|
|
85
54
|
const me = assertWhereable(this)
|
|
86
|
-
|
|
55
|
+
me._where = me.__where.andNot(...args)
|
|
56
|
+
return me;
|
|
87
57
|
}
|
|
88
58
|
|
|
89
59
|
orWhereNot<T>(this: T, ...args: ParseWhereArguments): T {
|
|
90
60
|
const me = assertWhereable(this)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
me._where = w;
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
me._where = me._where.or(w);
|
|
97
|
-
return this;
|
|
61
|
+
me._where = me.__where.orNot(...args)
|
|
62
|
+
return me;
|
|
98
63
|
}
|
|
99
64
|
}
|
|
100
65
|
}
|
|
101
66
|
|
|
102
67
|
export abstract class SQLWhere implements SQLExpression {
|
|
103
|
-
and(...
|
|
104
|
-
return new SQLWhereAnd([this, ...
|
|
68
|
+
and(...args: ParseWhereArguments): SQLWhere {
|
|
69
|
+
return new SQLWhereAnd([this, SQLWhereEqual.parseWhere(...args)]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
or(...args: ParseWhereArguments): SQLWhere {
|
|
73
|
+
return new SQLWhereOr([this, SQLWhereEqual.parseWhere(...args)]);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
andNot(...args: ParseWhereArguments): SQLWhere {
|
|
77
|
+
return new SQLWhereAnd([
|
|
78
|
+
this,
|
|
79
|
+
new SQLWhereNot(
|
|
80
|
+
SQLWhereEqual.parseWhere(...args)
|
|
81
|
+
)
|
|
82
|
+
]);
|
|
105
83
|
}
|
|
106
84
|
|
|
107
|
-
|
|
108
|
-
return new SQLWhereOr([
|
|
85
|
+
orNot(...args: ParseWhereArguments): SQLWhere {
|
|
86
|
+
return new SQLWhereOr([
|
|
87
|
+
this,
|
|
88
|
+
new SQLWhereNot(
|
|
89
|
+
SQLWhereEqual.parseWhere(...args)
|
|
90
|
+
)
|
|
91
|
+
]);
|
|
109
92
|
}
|
|
110
93
|
|
|
111
94
|
get isSingle(): boolean {
|
|
@@ -115,6 +98,33 @@ export abstract class SQLWhere implements SQLExpression {
|
|
|
115
98
|
abstract getSQL(options?: SQLExpressionOptions): SQLQuery
|
|
116
99
|
}
|
|
117
100
|
|
|
101
|
+
export class SQLEmptyWhere extends SQLWhere {
|
|
102
|
+
and(...args: ParseWhereArguments): SQLWhere {
|
|
103
|
+
return SQLWhereEqual.parseWhere(...args)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
or(...args: ParseWhereArguments): SQLWhere {
|
|
107
|
+
return SQLWhereEqual.parseWhere(...args)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
andNot(...args: ParseWhereArguments): SQLWhere {
|
|
111
|
+
return new SQLWhereNot(
|
|
112
|
+
SQLWhereEqual.parseWhere(...args)
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
orNot(...args: ParseWhereArguments): SQLWhere {
|
|
117
|
+
return new SQLWhereNot(
|
|
118
|
+
SQLWhereEqual.parseWhere(...args)
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
getSQL(options?: SQLExpressionOptions): SQLQuery {
|
|
123
|
+
throw new Error('Empty where')
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
118
128
|
export enum SQLWhereSign {
|
|
119
129
|
Equal = '=',
|
|
120
130
|
Greater = '>',
|
|
@@ -128,6 +138,25 @@ export class SQLWhereEqual extends SQLWhere {
|
|
|
128
138
|
column: SQLExpression;
|
|
129
139
|
sign = SQLWhereSign.Equal
|
|
130
140
|
value: SQLExpression;
|
|
141
|
+
|
|
142
|
+
static parseWhere(...[whereOrColumn, signOrValue, value]: ParseWhereArguments): SQLWhere {
|
|
143
|
+
if (signOrValue === undefined) {
|
|
144
|
+
return whereOrColumn as SQLWhere;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (value !== undefined) {
|
|
148
|
+
return new SQLWhereEqual(
|
|
149
|
+
typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
|
|
150
|
+
signOrValue as SQLWhereSign,
|
|
151
|
+
readDynamicSQLExpression(value)
|
|
152
|
+
)
|
|
153
|
+
}
|
|
154
|
+
return new SQLWhereEqual(
|
|
155
|
+
typeof whereOrColumn === 'string' ? new SQLColumnExpression(whereOrColumn) : whereOrColumn,
|
|
156
|
+
SQLWhereSign.Equal,
|
|
157
|
+
readDynamicSQLExpression(signOrValue)
|
|
158
|
+
)
|
|
159
|
+
}
|
|
131
160
|
|
|
132
161
|
constructor (column: SQLExpression, sign: SQLWhereSign, value: SQLExpression)
|
|
133
162
|
constructor (column: SQLExpression, value: SQLExpression)
|