@mrnafisia/type-query 1.1.1 → 1.2.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/U.d.ts +3 -0
- package/dist/U.d.ts.map +1 -0
- package/dist/U.js +29 -0
- package/dist/U.js.map +1 -0
- package/dist/context.d.ts +583 -56
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +18 -41
- package/dist/context.js.map +1 -1
- package/dist/dictionary.d.ts +10 -93
- package/dist/dictionary.d.ts.map +1 -1
- package/dist/dictionary.js +164 -132
- package/dist/dictionary.js.map +1 -1
- package/dist/entity.d.ts +2483 -687
- package/dist/entity.d.ts.map +1 -1
- package/dist/entity.js +190 -164
- package/dist/entity.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -54
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +1006 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/{createModelUtils.js → model.js} +13 -16
- package/dist/model.js.map +1 -0
- package/dist/parser.d.ts +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +1 -1
- package/dist/parser.js.map +1 -1
- package/dist/pool.d.ts +5 -9
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +26 -1
- package/dist/pool.js.map +1 -1
- package/dist/schema.d.ts +9 -21
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +176 -169
- package/dist/schema.js.map +1 -1
- package/dist/testUtil.d.ts +1 -25
- package/dist/testUtil.d.ts.map +1 -1
- package/dist/testUtil.js +2 -8
- package/dist/testUtil.js.map +1 -1
- package/dist/types/context.d.ts +52 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/{Context.js → context.js} +1 -1
- package/dist/types/context.js.map +1 -0
- package/dist/types/entity.d.ts +71 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/{Entity.js → entity.js} +1 -1
- package/dist/types/entity.js.map +1 -0
- package/dist/types/{Json.d.ts → json.d.ts} +3 -3
- package/dist/types/{Json.d.ts.map → json.d.ts.map} +1 -1
- package/dist/types/{Json.js → json.js} +1 -1
- package/dist/types/json.js.map +1 -0
- package/dist/types/model.d.ts +24 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/{Table.js → model.js} +1 -1
- package/dist/types/model.js.map +1 -0
- package/dist/types/pool.d.ts +19 -0
- package/dist/types/pool.d.ts.map +1 -0
- package/dist/types/{Model.js → pool.js} +1 -1
- package/dist/types/pool.js.map +1 -0
- package/dist/types/postgres.d.ts +6 -3
- package/dist/types/postgres.d.ts.map +1 -1
- package/dist/types/{Table.d.ts → table.d.ts} +5 -5
- package/dist/types/{Table.d.ts.map → table.d.ts.map} +1 -1
- package/dist/types/table.js +3 -0
- package/dist/types/table.js.map +1 -0
- package/dist/types/testUtil.d.ts +27 -0
- package/dist/types/testUtil.d.ts.map +1 -0
- package/dist/types/testUtil.js +3 -0
- package/dist/types/testUtil.js.map +1 -0
- package/dist/utils.d.ts +66 -38
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +171 -48
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/createModelUtils.d.ts +0 -503
- package/dist/createModelUtils.d.ts.map +0 -1
- package/dist/createModelUtils.js.map +0 -1
- package/dist/hook.d.ts +0 -15
- package/dist/hook.d.ts.map +0 -1
- package/dist/hook.js +0 -30
- package/dist/hook.js.map +0 -1
- package/dist/types/Context.d.ts +0 -53
- package/dist/types/Context.d.ts.map +0 -1
- package/dist/types/Context.js.map +0 -1
- package/dist/types/Entity.d.ts +0 -64
- package/dist/types/Entity.d.ts.map +0 -1
- package/dist/types/Entity.js.map +0 -1
- package/dist/types/Json.js.map +0 -1
- package/dist/types/Model.d.ts +0 -12
- package/dist/types/Model.d.ts.map +0 -1
- package/dist/types/Model.js.map +0 -1
- package/dist/types/Table.js.map +0 -1
- package/dist/types/TypeMapper.d.ts +0 -14
- package/dist/types/TypeMapper.d.ts.map +0 -1
- package/dist/types/TypeMapper.js +0 -3
- package/dist/types/TypeMapper.js.map +0 -1
package/dist/entity.js
CHANGED
|
@@ -23,7 +23,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.partialQuery = exports.resolveColumn = exports.getTableDataOfJoinSelectColumn = exports.resolveExpression = exports.resolveReturning = exports.resolveResult = exports.createQueryResult = exports.ReservedExpressionKeys = exports.createJoinSelectEntity = exports.createEntity = void 0;
|
|
27
|
+
var U_1 = require("./U");
|
|
27
28
|
var decimal_js_1 = __importDefault(require("decimal.js"));
|
|
28
29
|
var context_1 = require("./context");
|
|
29
30
|
var never_catch_1 = require("never-catch");
|
|
@@ -57,7 +58,7 @@ var createEntity = function (table) {
|
|
|
57
58
|
return (0, never_catch_1.err)("<select> -> ".concat(resolvedReturning.error));
|
|
58
59
|
}
|
|
59
60
|
params.push.apply(params, resolvedReturning.value.params);
|
|
60
|
-
tokens.push(resolvedReturning.value.
|
|
61
|
+
tokens.push(resolvedReturning.value.text);
|
|
61
62
|
// from
|
|
62
63
|
tokens.push("FROM \"".concat(table.schema, "\".\"").concat(table.title, "\""));
|
|
63
64
|
// where
|
|
@@ -65,11 +66,11 @@ var createEntity = function (table) {
|
|
|
65
66
|
if (!resolvedWhereResult.ok) {
|
|
66
67
|
return (0, never_catch_1.err)("<select>[where] -> ".concat(resolvedWhereResult.error));
|
|
67
68
|
}
|
|
68
|
-
if (resolvedWhereResult.value.
|
|
69
|
+
if (resolvedWhereResult.value.text === '' && !ignoreInWhere) {
|
|
69
70
|
return (0, never_catch_1.err)("<select>[where] -> neutral");
|
|
70
71
|
}
|
|
71
72
|
params.push.apply(params, resolvedWhereResult.value.params);
|
|
72
|
-
tokens.push('WHERE', resolvedWhereResult.value.
|
|
73
|
+
tokens.push('WHERE', resolvedWhereResult.value.text === '' ? 'TRUE' : resolvedWhereResult.value.text);
|
|
73
74
|
// groupBy
|
|
74
75
|
var _groupBy = typeof groupBy === 'function' ? groupBy(_this.context) : groupBy;
|
|
75
76
|
if (_groupBy.length !== 0) {
|
|
@@ -81,7 +82,7 @@ var createEntity = function (table) {
|
|
|
81
82
|
return (0, never_catch_1.err)("<select> -> ".concat(resolvedGroupBy.error));
|
|
82
83
|
}
|
|
83
84
|
params.push.apply(params, resolvedGroupBy.value.params);
|
|
84
|
-
groupByTextArray.push(resolvedGroupBy.value.
|
|
85
|
+
groupByTextArray.push(resolvedGroupBy.value.text);
|
|
85
86
|
}
|
|
86
87
|
tokens.push('GROUP BY', groupByTextArray.join(', '));
|
|
87
88
|
}
|
|
@@ -148,7 +149,7 @@ var createEntity = function (table) {
|
|
|
148
149
|
var column = table.columns[insertingColumn];
|
|
149
150
|
switch (column.default) {
|
|
150
151
|
case 'value':
|
|
151
|
-
rowTokens.push(stringify(column.value, true));
|
|
152
|
+
rowTokens.push(U_1.U.stringify(column.value, true));
|
|
152
153
|
continue;
|
|
153
154
|
case true:
|
|
154
155
|
case 'auto-increment':
|
|
@@ -156,11 +157,11 @@ var createEntity = function (table) {
|
|
|
156
157
|
continue;
|
|
157
158
|
case 'created-at':
|
|
158
159
|
case 'updated-at':
|
|
159
|
-
rowTokens.push(stringify(new Date(), true));
|
|
160
|
+
rowTokens.push(U_1.U.stringify(new Date(), true));
|
|
160
161
|
continue;
|
|
161
162
|
}
|
|
162
163
|
if (column.nullable) {
|
|
163
|
-
rowTokens.push(stringify(null));
|
|
164
|
+
rowTokens.push(U_1.U.stringify(null));
|
|
164
165
|
continue;
|
|
165
166
|
}
|
|
166
167
|
// never going to happen!
|
|
@@ -171,11 +172,11 @@ var createEntity = function (table) {
|
|
|
171
172
|
if (!resolvedExpressionResult.ok) {
|
|
172
173
|
return (0, never_catch_1.err)("<insert>[rows][".concat(_rows.indexOf(_row), "][").concat(insertingColumn, "] -> ").concat(resolvedExpressionResult.error));
|
|
173
174
|
}
|
|
174
|
-
if (resolvedExpressionResult.value.
|
|
175
|
+
if (resolvedExpressionResult.value.text === '') {
|
|
175
176
|
return (0, never_catch_1.err)("<insert>[rows][".concat(_rows.indexOf(_row), "][").concat(insertingColumn, "] -> neutral"));
|
|
176
177
|
}
|
|
177
178
|
params.push.apply(params, resolvedExpressionResult.value.params);
|
|
178
|
-
rowTokens.push(resolvedExpressionResult.value.
|
|
179
|
+
rowTokens.push(resolvedExpressionResult.value.text);
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
182
|
valuesTextArray.push("( ".concat(rowTokens.join(', '), " )"));
|
|
@@ -188,7 +189,7 @@ var createEntity = function (table) {
|
|
|
188
189
|
return (0, never_catch_1.err)("<insert> -> ".concat(resolvedReturning.error));
|
|
189
190
|
}
|
|
190
191
|
params.push.apply(params, resolvedReturning.value.params);
|
|
191
|
-
tokens.push('RETURNING', resolvedReturning.value.
|
|
192
|
+
tokens.push('RETURNING', resolvedReturning.value.text);
|
|
192
193
|
}
|
|
193
194
|
tokens.push(';');
|
|
194
195
|
var sql = tokens.join(' ');
|
|
@@ -214,7 +215,7 @@ var createEntity = function (table) {
|
|
|
214
215
|
if (!setExpressionResult.ok) {
|
|
215
216
|
return (0, never_catch_1.err)("<update>[sets][".concat(key, "] -> ").concat(setExpressionResult.error));
|
|
216
217
|
}
|
|
217
|
-
if (setExpressionResult.value.
|
|
218
|
+
if (setExpressionResult.value.text === '') {
|
|
218
219
|
if (ignoreInSets) {
|
|
219
220
|
continue;
|
|
220
221
|
}
|
|
@@ -223,12 +224,12 @@ var createEntity = function (table) {
|
|
|
223
224
|
}
|
|
224
225
|
}
|
|
225
226
|
params.push.apply(params, setExpressionResult.value.params);
|
|
226
|
-
setsTextArray.push("".concat(resolveColumn(table, key, false), " = ").concat(setExpressionResult.value.
|
|
227
|
+
setsTextArray.push("".concat(resolveColumn(table, key, false), " = ").concat(setExpressionResult.value.text));
|
|
227
228
|
}
|
|
228
229
|
for (var column in table.columns) {
|
|
229
230
|
switch (table.columns[column].default) {
|
|
230
231
|
case 'updated-at':
|
|
231
|
-
setsTextArray.push("".concat(resolveColumn(table, column, false), " = ").concat(stringify(new Date(), true)));
|
|
232
|
+
setsTextArray.push("".concat(resolveColumn(table, column, false), " = ").concat(U_1.U.stringify(new Date(), true)));
|
|
232
233
|
break;
|
|
233
234
|
}
|
|
234
235
|
}
|
|
@@ -241,11 +242,11 @@ var createEntity = function (table) {
|
|
|
241
242
|
if (!resolvedWhereResult.ok) {
|
|
242
243
|
return (0, never_catch_1.err)("<update>[where] -> ".concat(resolvedWhereResult.error));
|
|
243
244
|
}
|
|
244
|
-
if (resolvedWhereResult.value.
|
|
245
|
+
if (resolvedWhereResult.value.text === '' && !ignoreInWhere) {
|
|
245
246
|
return (0, never_catch_1.err)("<update>[where] -> neutral");
|
|
246
247
|
}
|
|
247
248
|
params.push.apply(params, resolvedWhereResult.value.params);
|
|
248
|
-
tokens.push('WHERE', resolvedWhereResult.value.
|
|
249
|
+
tokens.push('WHERE', resolvedWhereResult.value.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
|
|
249
250
|
// returning
|
|
250
251
|
if (_returning.length !== 0) {
|
|
251
252
|
var resolvedReturning = resolveReturning(function (column) { return ({ type: table.columns[column].type, title: table.columns[column].title }); }, _returning, params.length + 1, ignoreInReturning);
|
|
@@ -253,7 +254,7 @@ var createEntity = function (table) {
|
|
|
253
254
|
return (0, never_catch_1.err)("<update> -> ".concat(resolvedReturning.error));
|
|
254
255
|
}
|
|
255
256
|
params.push.apply(params, resolvedReturning.value.params);
|
|
256
|
-
tokens.push('RETURNING', resolvedReturning.value.
|
|
257
|
+
tokens.push('RETURNING', resolvedReturning.value.text);
|
|
257
258
|
}
|
|
258
259
|
tokens.push(';');
|
|
259
260
|
var sql = tokens.join(' ');
|
|
@@ -274,11 +275,11 @@ var createEntity = function (table) {
|
|
|
274
275
|
if (!resolvedWhereResult.ok) {
|
|
275
276
|
return (0, never_catch_1.err)("<delete>[where] -> ".concat(resolvedWhereResult.error));
|
|
276
277
|
}
|
|
277
|
-
if (resolvedWhereResult.value.
|
|
278
|
+
if (resolvedWhereResult.value.text === '' && !ignoreInWhere) {
|
|
278
279
|
return (0, never_catch_1.err)("<delete>[where] -> neutral");
|
|
279
280
|
}
|
|
280
281
|
params.push.apply(params, resolvedWhereResult.value.params);
|
|
281
|
-
tokens.push('WHERE', resolvedWhereResult.value.
|
|
282
|
+
tokens.push('WHERE', resolvedWhereResult.value.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
|
|
282
283
|
// returning
|
|
283
284
|
if (_returning.length !== 0) {
|
|
284
285
|
var resolvedReturning = resolveReturning(function (column) { return ({ type: table.columns[column].type, title: table.columns[column].title }); }, _returning, params.length + 1, ignoreInReturning);
|
|
@@ -286,7 +287,7 @@ var createEntity = function (table) {
|
|
|
286
287
|
return (0, never_catch_1.err)("<delete> -> ".concat(resolvedReturning.error));
|
|
287
288
|
}
|
|
288
289
|
params.push.apply(params, resolvedReturning.value.params);
|
|
289
|
-
tokens.push('RETURNING', resolvedReturning.value.
|
|
290
|
+
tokens.push('RETURNING', resolvedReturning.value.text);
|
|
290
291
|
}
|
|
291
292
|
tokens.push(';');
|
|
292
293
|
var sql = tokens.join(' ');
|
|
@@ -337,7 +338,7 @@ var createJoinSelectEntity = function (main, joinTables, contexts) {
|
|
|
337
338
|
return (0, never_catch_1.err)("<join-select>[columns] -> ".concat(resolvedReturning.error));
|
|
338
339
|
}
|
|
339
340
|
params.push.apply(params, resolvedReturning.value.params);
|
|
340
|
-
tokens.push(resolvedReturning.value.
|
|
341
|
+
tokens.push(resolvedReturning.value.text, "FROM \"".concat(main.table.schema, "\".\"").concat(main.table.title, "\" \"").concat(main.alias, "\""));
|
|
341
342
|
// join
|
|
342
343
|
for (var _i = 0, joinTables_1 = joinTables; _i < joinTables_1.length; _i++) {
|
|
343
344
|
var joinTable = joinTables_1[_i];
|
|
@@ -345,22 +346,22 @@ var createJoinSelectEntity = function (main, joinTables, contexts) {
|
|
|
345
346
|
if (!onExpressionResult.ok) {
|
|
346
347
|
return (0, never_catch_1.err)("<join-select>[join][".concat(joinTables.indexOf(joinTable), "] -> ").concat(onExpressionResult.error));
|
|
347
348
|
}
|
|
348
|
-
if (onExpressionResult.value.
|
|
349
|
+
if (onExpressionResult.value.text === '' && !ignoreInJoin) {
|
|
349
350
|
return (0, never_catch_1.err)("<join-select>[join][".concat(joinTables.indexOf(joinTable), "] -> neutral"));
|
|
350
351
|
}
|
|
351
352
|
params.push.apply(params, onExpressionResult.value.params);
|
|
352
|
-
tokens.push("".concat((0, dictionary_1.toJoinType)(joinTable.joinType), " \"").concat(joinTable.table.schema, "\".\"").concat(joinTable.table.title, "\" \"").concat(joinTable.alias, "\" ON ").concat(onExpressionResult.value.
|
|
353
|
+
tokens.push("".concat((0, dictionary_1.toJoinType)(joinTable.joinType), " \"").concat(joinTable.table.schema, "\".\"").concat(joinTable.table.title, "\" \"").concat(joinTable.alias, "\" ON ").concat(onExpressionResult.value.text));
|
|
353
354
|
}
|
|
354
355
|
// where
|
|
355
356
|
var resolvedWhereResult = resolveExpression(typeof where === 'function' ? where(_this.contexts) : where, params.length + 1, ignoreInWhere);
|
|
356
357
|
if (!resolvedWhereResult.ok) {
|
|
357
358
|
return (0, never_catch_1.err)("<join-select>[where] -> ".concat(resolvedWhereResult.error));
|
|
358
359
|
}
|
|
359
|
-
if (resolvedWhereResult.value.
|
|
360
|
+
if (resolvedWhereResult.value.text === '' && !ignoreInWhere) {
|
|
360
361
|
return (0, never_catch_1.err)("<join-select>[where] -> neutral");
|
|
361
362
|
}
|
|
362
363
|
params.push.apply(params, resolvedWhereResult.value.params);
|
|
363
|
-
tokens.push('WHERE', resolvedWhereResult.value.
|
|
364
|
+
tokens.push('WHERE', resolvedWhereResult.value.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
|
|
364
365
|
// groupBy
|
|
365
366
|
var _groupBy = typeof groupBy === 'function' ? groupBy(_this.contexts) : groupBy;
|
|
366
367
|
if (_groupBy.length !== 0) {
|
|
@@ -372,7 +373,7 @@ var createJoinSelectEntity = function (main, joinTables, contexts) {
|
|
|
372
373
|
return (0, never_catch_1.err)("<join-select> -> ".concat(resolvedGroupBy.error));
|
|
373
374
|
}
|
|
374
375
|
params.push.apply(params, resolvedGroupBy.value.params);
|
|
375
|
-
groupByTextArray.push(resolvedGroupBy.value.
|
|
376
|
+
groupByTextArray.push(resolvedGroupBy.value.text);
|
|
376
377
|
}
|
|
377
378
|
tokens.push('GROUP BY', groupByTextArray.join(', '));
|
|
378
379
|
}
|
|
@@ -418,6 +419,48 @@ var createJoinSelectEntity = function (main, joinTables, contexts) {
|
|
|
418
419
|
};
|
|
419
420
|
exports.createJoinSelectEntity = createJoinSelectEntity;
|
|
420
421
|
// utils
|
|
422
|
+
var ReservedExpressionKeys = [
|
|
423
|
+
'val',
|
|
424
|
+
'=n',
|
|
425
|
+
'!=n',
|
|
426
|
+
'=t',
|
|
427
|
+
'=f',
|
|
428
|
+
'not',
|
|
429
|
+
'+',
|
|
430
|
+
'-',
|
|
431
|
+
'*',
|
|
432
|
+
'/',
|
|
433
|
+
'||',
|
|
434
|
+
'and',
|
|
435
|
+
'or',
|
|
436
|
+
'**',
|
|
437
|
+
'fun',
|
|
438
|
+
'swt',
|
|
439
|
+
'col',
|
|
440
|
+
'raw',
|
|
441
|
+
'=',
|
|
442
|
+
'!=',
|
|
443
|
+
'>',
|
|
444
|
+
'>=',
|
|
445
|
+
'<',
|
|
446
|
+
'<=',
|
|
447
|
+
'lk',
|
|
448
|
+
'@>',
|
|
449
|
+
'<@',
|
|
450
|
+
'?',
|
|
451
|
+
'j-',
|
|
452
|
+
'in',
|
|
453
|
+
'nin',
|
|
454
|
+
'lka',
|
|
455
|
+
'lks',
|
|
456
|
+
'?|',
|
|
457
|
+
'?&',
|
|
458
|
+
'j-a',
|
|
459
|
+
'bt',
|
|
460
|
+
'qry',
|
|
461
|
+
'exists'
|
|
462
|
+
];
|
|
463
|
+
exports.ReservedExpressionKeys = ReservedExpressionKeys;
|
|
421
464
|
var createQueryResult = function (getColumnType, createQuery, returning) {
|
|
422
465
|
var query = undefined;
|
|
423
466
|
return {
|
|
@@ -472,7 +515,7 @@ var resolveResult = function (getColumnType, columns, rows, mode) {
|
|
|
472
515
|
rows.forEach(function (_, i) {
|
|
473
516
|
columns.forEach(function (column) {
|
|
474
517
|
if (typeof column !== 'object') {
|
|
475
|
-
rows[i][column] = cast(rows[i][column], getColumnType(column));
|
|
518
|
+
rows[i][column] = U_1.U.cast(rows[i][column], getColumnType(column));
|
|
476
519
|
}
|
|
477
520
|
});
|
|
478
521
|
});
|
|
@@ -499,12 +542,12 @@ var resolveReturning = function (getColumnTypeTitleAlias, columns, paramsStart,
|
|
|
499
542
|
if (!resolvedExpResult.ok) {
|
|
500
543
|
return (0, never_catch_1.err)("<returning>[".concat(column.as, "] -> ").concat(resolvedExpResult.error));
|
|
501
544
|
}
|
|
502
|
-
if (resolvedExpResult.value.
|
|
545
|
+
if (resolvedExpResult.value.text === '') {
|
|
503
546
|
return (0, never_catch_1.err)("<returning>[".concat(column.as, "] -> neutral"));
|
|
504
547
|
}
|
|
505
548
|
params.push.apply(params, resolvedExpResult.value.params);
|
|
506
549
|
paramsStart += resolvedExpResult.value.params.length;
|
|
507
|
-
tokens.push("( ".concat(resolvedExpResult.value.
|
|
550
|
+
tokens.push("( ".concat(resolvedExpResult.value.text, " ) AS \"").concat(column.as, "\""));
|
|
508
551
|
}
|
|
509
552
|
else {
|
|
510
553
|
var _a = getColumnTypeTitleAlias(column), _type = _a.type, title = _a.title, alias = _a.alias;
|
|
@@ -551,13 +594,13 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
551
594
|
expression instanceof Date ||
|
|
552
595
|
typeof expression === 'number' ||
|
|
553
596
|
typeof expression === 'bigint') {
|
|
554
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(stringify(expression, true))));
|
|
597
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(U_1.U.stringify(expression, true))));
|
|
555
598
|
}
|
|
556
599
|
if (typeof expression === 'string') {
|
|
557
|
-
return (0, never_catch_1.ok)(partialQuery("$".concat(paramsStart++), [stringify(expression, false)]));
|
|
600
|
+
return (0, never_catch_1.ok)(partialQuery("$".concat(paramsStart++), [U_1.U.stringify(expression, false)]));
|
|
558
601
|
}
|
|
559
|
-
if (!(Array.isArray(expression) &&
|
|
560
|
-
return (0, never_catch_1.ok)(partialQuery("$".concat(paramsStart++, "::jsonb"), [stringify(expression, false)]));
|
|
602
|
+
if (!(Array.isArray(expression) && ReservedExpressionKeys.includes(expression[0]))) {
|
|
603
|
+
return (0, never_catch_1.ok)(partialQuery("$".concat(paramsStart++, "::jsonb"), [U_1.U.stringify(expression, false)]));
|
|
561
604
|
}
|
|
562
605
|
// wrapped expression
|
|
563
606
|
var tokens = [];
|
|
@@ -568,7 +611,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
568
611
|
if (expression[1] === undefined) {
|
|
569
612
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)('val'), "> -> undefined"));
|
|
570
613
|
}
|
|
571
|
-
params.push(stringify(expression[1], false));
|
|
614
|
+
params.push(U_1.U.stringify(expression[1], false));
|
|
572
615
|
return (0, never_catch_1.ok)(partialQuery("$".concat(paramsStart++), params));
|
|
573
616
|
case '=n':
|
|
574
617
|
case '!=n':
|
|
@@ -579,21 +622,21 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
579
622
|
if (!e1Result.ok) {
|
|
580
623
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), "> -> ").concat(e1Result.error));
|
|
581
624
|
}
|
|
582
|
-
if (e1Result.value.
|
|
625
|
+
if (e1Result.value.text === '') {
|
|
583
626
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), "> -> neutral"));
|
|
584
627
|
}
|
|
585
628
|
params.push.apply(params, e1Result.value.params);
|
|
586
629
|
paramsStart += e1Result.value.params.length;
|
|
587
630
|
switch (expression[0]) {
|
|
588
631
|
case '=n':
|
|
589
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
632
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " IS NULL"), params));
|
|
590
633
|
case '!=n':
|
|
591
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
634
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " IS NOT NULL"), params));
|
|
592
635
|
case '=t':
|
|
593
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
636
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text), params));
|
|
594
637
|
case '=f':
|
|
595
638
|
case 'not':
|
|
596
|
-
return (0, never_catch_1.ok)(partialQuery("NOT ".concat(e1Result.value.
|
|
639
|
+
return (0, never_catch_1.ok)(partialQuery("NOT ".concat(e1Result.value.text), params));
|
|
597
640
|
}
|
|
598
641
|
case '+':
|
|
599
642
|
case '-':
|
|
@@ -603,13 +646,16 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
603
646
|
case 'and':
|
|
604
647
|
case 'or':
|
|
605
648
|
case '**':
|
|
649
|
+
if (expression[1] === undefined) {
|
|
650
|
+
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), "> -> undefined"));
|
|
651
|
+
}
|
|
606
652
|
for (var _i = 0, _a = expression[1]; _i < _a.length; _i++) {
|
|
607
653
|
var v1 = _a[_i];
|
|
608
654
|
var v1Result = resolveExpression(v1, paramsStart, ignore);
|
|
609
655
|
if (!v1Result.ok) {
|
|
610
656
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[").concat(expression[1].indexOf(v1), "] -> ").concat(v1Result.error));
|
|
611
657
|
}
|
|
612
|
-
if (v1Result.value.
|
|
658
|
+
if (v1Result.value.text === '') {
|
|
613
659
|
if (ignore) {
|
|
614
660
|
continue;
|
|
615
661
|
}
|
|
@@ -619,7 +665,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
619
665
|
}
|
|
620
666
|
params.push.apply(params, v1Result.value.params);
|
|
621
667
|
paramsStart += v1Result.value.params.length;
|
|
622
|
-
tokens.push(v1Result.value.
|
|
668
|
+
tokens.push(v1Result.value.text);
|
|
623
669
|
}
|
|
624
670
|
switch (tokens.length) {
|
|
625
671
|
case 0:
|
|
@@ -645,76 +691,92 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
645
691
|
case '**':
|
|
646
692
|
var tmp = tokens.pop();
|
|
647
693
|
tokens.splice(0, 0, 'a');
|
|
648
|
-
return (0, never_catch_1.ok)(
|
|
694
|
+
return (0, never_catch_1.ok)({
|
|
695
|
+
text: tokens.join(', power( ').substring(3) + ', ' + tmp + ' )'.repeat(tokens.length - 1),
|
|
696
|
+
params: params
|
|
697
|
+
});
|
|
649
698
|
}
|
|
650
699
|
}
|
|
651
700
|
case 'fun':
|
|
701
|
+
if (expression[1] === undefined) {
|
|
702
|
+
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[name] -> undefined"));
|
|
703
|
+
}
|
|
704
|
+
if (expression[2] === undefined) {
|
|
705
|
+
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[parameters] -> undefined"));
|
|
706
|
+
}
|
|
652
707
|
for (var _b = 0, _c = expression[2]; _b < _c.length; _b++) {
|
|
653
708
|
var v2 = _c[_b];
|
|
654
709
|
var v2Result = resolveExpression(v2, paramsStart, ignore);
|
|
655
710
|
if (!v2Result.ok) {
|
|
656
711
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[parameters][").concat(expression[2].indexOf(v2), "] -> ").concat(v2Result.error));
|
|
657
712
|
}
|
|
658
|
-
if (v2Result.value.
|
|
713
|
+
if (v2Result.value.text === '') {
|
|
659
714
|
return ignore
|
|
660
715
|
? (0, never_catch_1.ok)(partialQuery())
|
|
661
716
|
: (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[parameters][").concat(expression[2].indexOf(v2), "] -> neutral"));
|
|
662
717
|
}
|
|
663
718
|
params.push.apply(params, v2Result.value.params);
|
|
664
719
|
paramsStart += v2Result.value.params.length;
|
|
665
|
-
tokens.push(v2Result.value.
|
|
720
|
+
tokens.push(v2Result.value.text);
|
|
666
721
|
}
|
|
667
722
|
return (0, never_catch_1.ok)(partialQuery("".concat(expression[1], "( ").concat(tokens.join(', '), " )").concat(expression[3]), params));
|
|
668
723
|
case 'swt':
|
|
669
724
|
var cases = expression[1];
|
|
670
725
|
var otherwise = expression[2];
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
726
|
+
if (cases === undefined) {
|
|
727
|
+
if (!ignore) {
|
|
728
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases] -> undefined"));
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
for (var _d = 0, cases_1 = cases; _d < cases_1.length; _d++) {
|
|
733
|
+
var caseElement = cases_1[_d];
|
|
734
|
+
if (caseElement === undefined) {
|
|
735
|
+
if (ignore) {
|
|
736
|
+
continue;
|
|
737
|
+
}
|
|
738
|
+
else {
|
|
739
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "] -> undefined"));
|
|
740
|
+
}
|
|
676
741
|
}
|
|
677
|
-
|
|
678
|
-
|
|
742
|
+
var whenResult = resolveExpression(caseElement.when, paramsStart, ignore);
|
|
743
|
+
if (!whenResult.ok) {
|
|
744
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][when] -> ").concat(whenResult.error));
|
|
679
745
|
}
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
continue;
|
|
746
|
+
if (whenResult.value.text === '') {
|
|
747
|
+
if (ignore) {
|
|
748
|
+
continue;
|
|
749
|
+
}
|
|
750
|
+
else {
|
|
751
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][when] -> neutral"));
|
|
752
|
+
}
|
|
688
753
|
}
|
|
689
|
-
|
|
690
|
-
|
|
754
|
+
params.push.apply(params, whenResult.value.params);
|
|
755
|
+
paramsStart += whenResult.value.params.length;
|
|
756
|
+
var thenResult = resolveExpression(caseElement.then, paramsStart, ignore);
|
|
757
|
+
if (!thenResult.ok) {
|
|
758
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][then] -> ").concat(thenResult.error));
|
|
691
759
|
}
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
if (thenResult.value.sql === '') {
|
|
700
|
-
if (ignore) {
|
|
701
|
-
continue;
|
|
760
|
+
if (thenResult.value.text === '') {
|
|
761
|
+
if (ignore) {
|
|
762
|
+
continue;
|
|
763
|
+
}
|
|
764
|
+
else {
|
|
765
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][then] -> neutral"));
|
|
766
|
+
}
|
|
702
767
|
}
|
|
703
|
-
|
|
704
|
-
|
|
768
|
+
params.push.apply(params, thenResult.value.params);
|
|
769
|
+
paramsStart += thenResult.value.params.length;
|
|
770
|
+
if (tokens.length === 0) {
|
|
771
|
+
tokens.push('CASE');
|
|
705
772
|
}
|
|
773
|
+
tokens.push("WHEN ".concat(whenResult.value.text, " THEN ").concat(thenResult.value.text));
|
|
706
774
|
}
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
tokens.push('CASE');
|
|
711
|
-
}
|
|
712
|
-
tokens.push("WHEN ".concat(whenResult.value.sql, " THEN ").concat(thenResult.value.sql));
|
|
775
|
+
}
|
|
776
|
+
if (tokens.length === 0 && !ignore) {
|
|
777
|
+
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases] -> empty"));
|
|
713
778
|
}
|
|
714
779
|
if (otherwise === undefined) {
|
|
715
|
-
if (!ignore) {
|
|
716
|
-
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[otherwise] -> undefined"));
|
|
717
|
-
}
|
|
718
780
|
if (tokens.length === 0) {
|
|
719
781
|
return (0, never_catch_1.ok)(partialQuery());
|
|
720
782
|
}
|
|
@@ -728,7 +790,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
728
790
|
if (!otherwiseResult.ok) {
|
|
729
791
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[otherwise] -> ").concat(otherwiseResult.error));
|
|
730
792
|
}
|
|
731
|
-
if (otherwiseResult.value.
|
|
793
|
+
if (otherwiseResult.value.text === '') {
|
|
732
794
|
if (ignore) {
|
|
733
795
|
isOtherwiseNeutral = true;
|
|
734
796
|
}
|
|
@@ -743,12 +805,12 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
743
805
|
return (0, never_catch_1.ok)(partialQuery());
|
|
744
806
|
}
|
|
745
807
|
else {
|
|
746
|
-
tokens.push(otherwiseResult.value.
|
|
808
|
+
tokens.push(otherwiseResult.value.text);
|
|
747
809
|
}
|
|
748
810
|
}
|
|
749
811
|
else {
|
|
750
812
|
if (!isOtherwiseNeutral) {
|
|
751
|
-
tokens.push('ELSE', otherwiseResult.value.
|
|
813
|
+
tokens.push('ELSE', otherwiseResult.value.text);
|
|
752
814
|
}
|
|
753
815
|
tokens.push('END');
|
|
754
816
|
}
|
|
@@ -764,6 +826,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
764
826
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), "> -> ").concat(subQueryDataResult.error));
|
|
765
827
|
}
|
|
766
828
|
paramsStart += subQueryDataResult.value.params.length;
|
|
829
|
+
subQueryDataResult.value.sql = subQueryDataResult.value.sql.substring(0, subQueryDataResult.value.sql.length - 1);
|
|
767
830
|
switch (expression[0]) {
|
|
768
831
|
case 'qry':
|
|
769
832
|
return (0, never_catch_1.ok)(partialQuery("( ".concat(subQueryDataResult.value.sql, " )"), params));
|
|
@@ -785,7 +848,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
785
848
|
if (!e1Result.ok) {
|
|
786
849
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> ").concat(e1Result.error));
|
|
787
850
|
}
|
|
788
|
-
if (e1Result.value.
|
|
851
|
+
if (e1Result.value.text === '') {
|
|
789
852
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> netural"));
|
|
790
853
|
}
|
|
791
854
|
params.push.apply(params, e1Result.value.params);
|
|
@@ -794,7 +857,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
794
857
|
if (!e2Result.ok) {
|
|
795
858
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand] -> ").concat(e2Result.error));
|
|
796
859
|
}
|
|
797
|
-
if (e2Result.value.
|
|
860
|
+
if (e2Result.value.text === '') {
|
|
798
861
|
return ignore
|
|
799
862
|
? (0, never_catch_1.ok)(partialQuery())
|
|
800
863
|
: (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand] -> netural"));
|
|
@@ -803,27 +866,27 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
803
866
|
paramsStart += e2Result.value.params.length;
|
|
804
867
|
switch (expression[0]) {
|
|
805
868
|
case '=':
|
|
806
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
869
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " = ").concat(e2Result.value.text), params));
|
|
807
870
|
case '!=':
|
|
808
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
871
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " <> ").concat(e2Result.value.text), params));
|
|
809
872
|
case '>':
|
|
810
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
873
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " > ").concat(e2Result.value.text), params));
|
|
811
874
|
case '>=':
|
|
812
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
875
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " >= ").concat(e2Result.value.text), params));
|
|
813
876
|
case '<':
|
|
814
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
877
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " < ").concat(e2Result.value.text), params));
|
|
815
878
|
case '<=':
|
|
816
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
879
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " <= ").concat(e2Result.value.text), params));
|
|
817
880
|
case 'lk':
|
|
818
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
881
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " LIKE ").concat(e2Result.value.text), params));
|
|
819
882
|
case '@>':
|
|
820
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
883
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " @> ").concat(e2Result.value.text), params));
|
|
821
884
|
case '<@':
|
|
822
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
885
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " <@ ").concat(e2Result.value.text), params));
|
|
823
886
|
case '?':
|
|
824
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
887
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " ? ").concat(e2Result.value.text), params));
|
|
825
888
|
case 'j-':
|
|
826
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
889
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " - ").concat(e2Result.value.text), params));
|
|
827
890
|
}
|
|
828
891
|
case 'in':
|
|
829
892
|
case 'nin':
|
|
@@ -836,18 +899,23 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
836
899
|
if (!e1Result.ok) {
|
|
837
900
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> ").concat(e1Result.error));
|
|
838
901
|
}
|
|
839
|
-
if (e1Result.value.
|
|
902
|
+
if (e1Result.value.text === '') {
|
|
840
903
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> netural"));
|
|
841
904
|
}
|
|
842
905
|
params.push.apply(params, e1Result.value.params);
|
|
843
906
|
paramsStart += e1Result.value.params.length;
|
|
907
|
+
if (expression[2] === undefined) {
|
|
908
|
+
return ignore
|
|
909
|
+
? (0, never_catch_1.ok)(partialQuery())
|
|
910
|
+
: (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand] -> undefined"));
|
|
911
|
+
}
|
|
844
912
|
for (var _e = 0, _f = expression[2]; _e < _f.length; _e++) {
|
|
845
913
|
var v2 = _f[_e];
|
|
846
914
|
var v2Result = resolveExpression(v2, paramsStart, ignore);
|
|
847
915
|
if (!v2Result.ok) {
|
|
848
916
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand][").concat(expression[2].indexOf(v2), "] -> ").concat(v2Result.error));
|
|
849
917
|
}
|
|
850
|
-
if (v2Result.value.
|
|
918
|
+
if (v2Result.value.text === '') {
|
|
851
919
|
if (ignore) {
|
|
852
920
|
continue;
|
|
853
921
|
}
|
|
@@ -857,7 +925,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
857
925
|
}
|
|
858
926
|
params.push.apply(params, v2Result.value.params);
|
|
859
927
|
paramsStart += v2Result.value.params.length;
|
|
860
|
-
tokens.push(v2Result.value.
|
|
928
|
+
tokens.push(v2Result.value.text);
|
|
861
929
|
}
|
|
862
930
|
switch (tokens.length) {
|
|
863
931
|
case 0:
|
|
@@ -867,36 +935,36 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
867
935
|
case 1:
|
|
868
936
|
switch (expression[0]) {
|
|
869
937
|
case 'in':
|
|
870
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
938
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " = ").concat(tokens[0]), params));
|
|
871
939
|
case 'nin':
|
|
872
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
940
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " <> ").concat(tokens[0]), params));
|
|
873
941
|
case 'lka':
|
|
874
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
942
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " LIKE ").concat(tokens[0]), params));
|
|
875
943
|
case 'lks':
|
|
876
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
944
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " LIKE ").concat(tokens[0]), params));
|
|
877
945
|
case '?|':
|
|
878
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
946
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " ? ").concat(tokens[0]), params));
|
|
879
947
|
case '?&':
|
|
880
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
948
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " ? ").concat(tokens[0]), params));
|
|
881
949
|
case 'j-a':
|
|
882
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
950
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " - ").concat(tokens[0]), params));
|
|
883
951
|
}
|
|
884
952
|
default:
|
|
885
953
|
switch (expression[0]) {
|
|
886
954
|
case 'in':
|
|
887
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
955
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " IN ( ").concat(tokens.join(', '), " )"), params));
|
|
888
956
|
case 'nin':
|
|
889
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
957
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " NOT IN ( ").concat(tokens.join(', '), " )"), params));
|
|
890
958
|
case 'lka':
|
|
891
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
959
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " LIKE ALL( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
|
|
892
960
|
case 'lks':
|
|
893
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
961
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " LIKE SOME( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
|
|
894
962
|
case '?|':
|
|
895
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
963
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " ?| ARRAY[ ").concat(tokens.join(', '), " ]"), params));
|
|
896
964
|
case '?&':
|
|
897
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
965
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " ?& ARRAY[ ").concat(tokens.join(', '), " ]"), params));
|
|
898
966
|
case 'j-a':
|
|
899
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
967
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " - ARRAY[ ").concat(tokens.join(', '), " ]"), params));
|
|
900
968
|
}
|
|
901
969
|
}
|
|
902
970
|
case 'bt':
|
|
@@ -904,7 +972,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
904
972
|
if (!e1Result.ok) {
|
|
905
973
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> ").concat(e1Result.error));
|
|
906
974
|
}
|
|
907
|
-
if (e1Result.value.
|
|
975
|
+
if (e1Result.value.text === '') {
|
|
908
976
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[first operand] -> netural"));
|
|
909
977
|
}
|
|
910
978
|
params.push.apply(params, e1Result.value.params);
|
|
@@ -913,7 +981,7 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
913
981
|
if (!e2Result.ok) {
|
|
914
982
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand] -> ").concat(e2Result.error));
|
|
915
983
|
}
|
|
916
|
-
if (e2Result.value.
|
|
984
|
+
if (e2Result.value.text === '') {
|
|
917
985
|
return ignore
|
|
918
986
|
? (0, never_catch_1.ok)(partialQuery())
|
|
919
987
|
: (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[second operand] -> netural"));
|
|
@@ -924,12 +992,12 @@ var resolveExpression = function (expression, paramsStart, ignore) {
|
|
|
924
992
|
if (!e3Result.ok) {
|
|
925
993
|
return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[third operand] -> ").concat(e3Result.error));
|
|
926
994
|
}
|
|
927
|
-
if (e3Result.value.
|
|
995
|
+
if (e3Result.value.text === '') {
|
|
928
996
|
return ignore ? (0, never_catch_1.ok)(partialQuery()) : (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[third operand] -> netural"));
|
|
929
997
|
}
|
|
930
998
|
params.push.apply(params, e3Result.value.params);
|
|
931
999
|
paramsStart += e3Result.value.params.length;
|
|
932
|
-
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.
|
|
1000
|
+
return (0, never_catch_1.ok)(partialQuery("".concat(e1Result.value.text, " BETWEEN ").concat(e2Result.value.text, " AND ").concat(e3Result.value.text), params));
|
|
933
1001
|
default:
|
|
934
1002
|
throw 'unexpected error. expect first element to be reserved key.';
|
|
935
1003
|
}
|
|
@@ -978,52 +1046,10 @@ var resolveColumn = function (table, column, full, alias) {
|
|
|
978
1046
|
return prefix + "\"".concat((_a = table.columns[column].title) !== null && _a !== void 0 ? _a : column, "\"");
|
|
979
1047
|
};
|
|
980
1048
|
exports.resolveColumn = resolveColumn;
|
|
981
|
-
var partialQuery = function (
|
|
982
|
-
if (
|
|
1049
|
+
var partialQuery = function (text, params) {
|
|
1050
|
+
if (text === void 0) { text = ''; }
|
|
983
1051
|
if (params === void 0) { params = []; }
|
|
984
|
-
return ({
|
|
1052
|
+
return ({ text: text, params: params });
|
|
985
1053
|
};
|
|
986
1054
|
exports.partialQuery = partialQuery;
|
|
987
|
-
var stringify = function (v, inline) {
|
|
988
|
-
if (inline === void 0) { inline = false; }
|
|
989
|
-
var result;
|
|
990
|
-
if (v === null) {
|
|
991
|
-
result = 'NULL';
|
|
992
|
-
}
|
|
993
|
-
else if (typeof v === 'boolean') {
|
|
994
|
-
result = v ? 'TRUE' : 'FALSE';
|
|
995
|
-
}
|
|
996
|
-
else if (typeof v === 'number' || typeof v === 'bigint') {
|
|
997
|
-
result = v;
|
|
998
|
-
}
|
|
999
|
-
else if (v instanceof decimal_js_1.default) {
|
|
1000
|
-
result = "".concat(v);
|
|
1001
|
-
}
|
|
1002
|
-
else if (v instanceof Date) {
|
|
1003
|
-
result = inline ? "'".concat(v.toISOString(), "'") : v.toISOString();
|
|
1004
|
-
}
|
|
1005
|
-
else if (typeof v === 'object') {
|
|
1006
|
-
result = inline ? "'".concat(JSON.stringify(v), "'::JSONB") : JSON.stringify(v);
|
|
1007
|
-
}
|
|
1008
|
-
else {
|
|
1009
|
-
result = inline ? "'".concat(v, "'") : "".concat(v);
|
|
1010
|
-
}
|
|
1011
|
-
return result;
|
|
1012
|
-
};
|
|
1013
|
-
exports.stringify = stringify;
|
|
1014
|
-
var cast = function (v, _a) {
|
|
1015
|
-
var type = _a[0], nullable = _a[1];
|
|
1016
|
-
if (nullable && v === null) {
|
|
1017
|
-
return null;
|
|
1018
|
-
}
|
|
1019
|
-
switch (type) {
|
|
1020
|
-
case 'bigint':
|
|
1021
|
-
return BigInt(v);
|
|
1022
|
-
case 'numeric':
|
|
1023
|
-
return new decimal_js_1.default(v);
|
|
1024
|
-
default:
|
|
1025
|
-
return v;
|
|
1026
|
-
}
|
|
1027
|
-
};
|
|
1028
|
-
exports.cast = cast;
|
|
1029
1055
|
//# sourceMappingURL=entity.js.map
|