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