@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.
Files changed (97) hide show
  1. package/dist/U.d.ts +3 -0
  2. package/dist/U.d.ts.map +1 -0
  3. package/dist/U.js +29 -0
  4. package/dist/U.js.map +1 -0
  5. package/dist/context.d.ts +583 -56
  6. package/dist/context.d.ts.map +1 -1
  7. package/dist/context.js +18 -41
  8. package/dist/context.js.map +1 -1
  9. package/dist/dictionary.d.ts +10 -93
  10. package/dist/dictionary.d.ts.map +1 -1
  11. package/dist/dictionary.js +164 -132
  12. package/dist/dictionary.js.map +1 -1
  13. package/dist/entity.d.ts +2483 -687
  14. package/dist/entity.d.ts.map +1 -1
  15. package/dist/entity.js +190 -164
  16. package/dist/entity.js.map +1 -1
  17. package/dist/index.d.ts +16 -17
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +15 -54
  20. package/dist/index.js.map +1 -1
  21. package/dist/model.d.ts +1006 -0
  22. package/dist/model.d.ts.map +1 -0
  23. package/dist/{createModelUtils.js → model.js} +13 -16
  24. package/dist/model.js.map +1 -0
  25. package/dist/parser.d.ts +1 -1
  26. package/dist/parser.d.ts.map +1 -1
  27. package/dist/parser.js +1 -1
  28. package/dist/parser.js.map +1 -1
  29. package/dist/pool.d.ts +5 -9
  30. package/dist/pool.d.ts.map +1 -1
  31. package/dist/pool.js +26 -1
  32. package/dist/pool.js.map +1 -1
  33. package/dist/schema.d.ts +9 -21
  34. package/dist/schema.d.ts.map +1 -1
  35. package/dist/schema.js +176 -169
  36. package/dist/schema.js.map +1 -1
  37. package/dist/testUtil.d.ts +1 -25
  38. package/dist/testUtil.d.ts.map +1 -1
  39. package/dist/testUtil.js +2 -8
  40. package/dist/testUtil.js.map +1 -1
  41. package/dist/types/context.d.ts +52 -0
  42. package/dist/types/context.d.ts.map +1 -0
  43. package/dist/types/{Context.js → context.js} +1 -1
  44. package/dist/types/context.js.map +1 -0
  45. package/dist/types/entity.d.ts +71 -0
  46. package/dist/types/entity.d.ts.map +1 -0
  47. package/dist/types/{Entity.js → entity.js} +1 -1
  48. package/dist/types/entity.js.map +1 -0
  49. package/dist/types/{Json.d.ts → json.d.ts} +3 -3
  50. package/dist/types/{Json.d.ts.map → json.d.ts.map} +1 -1
  51. package/dist/types/{Json.js → json.js} +1 -1
  52. package/dist/types/json.js.map +1 -0
  53. package/dist/types/model.d.ts +24 -0
  54. package/dist/types/model.d.ts.map +1 -0
  55. package/dist/types/{Table.js → model.js} +1 -1
  56. package/dist/types/model.js.map +1 -0
  57. package/dist/types/pool.d.ts +19 -0
  58. package/dist/types/pool.d.ts.map +1 -0
  59. package/dist/types/{Model.js → pool.js} +1 -1
  60. package/dist/types/pool.js.map +1 -0
  61. package/dist/types/postgres.d.ts +6 -3
  62. package/dist/types/postgres.d.ts.map +1 -1
  63. package/dist/types/{Table.d.ts → table.d.ts} +5 -5
  64. package/dist/types/{Table.d.ts.map → table.d.ts.map} +1 -1
  65. package/dist/types/table.js +3 -0
  66. package/dist/types/table.js.map +1 -0
  67. package/dist/types/testUtil.d.ts +27 -0
  68. package/dist/types/testUtil.d.ts.map +1 -0
  69. package/dist/types/testUtil.js +3 -0
  70. package/dist/types/testUtil.js.map +1 -0
  71. package/dist/utils.d.ts +66 -38
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +171 -48
  74. package/dist/utils.js.map +1 -1
  75. package/package.json +1 -1
  76. package/dist/createModelUtils.d.ts +0 -503
  77. package/dist/createModelUtils.d.ts.map +0 -1
  78. package/dist/createModelUtils.js.map +0 -1
  79. package/dist/hook.d.ts +0 -15
  80. package/dist/hook.d.ts.map +0 -1
  81. package/dist/hook.js +0 -30
  82. package/dist/hook.js.map +0 -1
  83. package/dist/types/Context.d.ts +0 -53
  84. package/dist/types/Context.d.ts.map +0 -1
  85. package/dist/types/Context.js.map +0 -1
  86. package/dist/types/Entity.d.ts +0 -64
  87. package/dist/types/Entity.d.ts.map +0 -1
  88. package/dist/types/Entity.js.map +0 -1
  89. package/dist/types/Json.js.map +0 -1
  90. package/dist/types/Model.d.ts +0 -12
  91. package/dist/types/Model.d.ts.map +0 -1
  92. package/dist/types/Model.js.map +0 -1
  93. package/dist/types/Table.js.map +0 -1
  94. package/dist/types/TypeMapper.d.ts +0 -14
  95. package/dist/types/TypeMapper.d.ts.map +0 -1
  96. package/dist/types/TypeMapper.js +0 -3
  97. 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.cast = exports.stringify = exports.partialQuery = exports.resolveColumn = exports.getTableDataOfJoinSelectColumn = exports.resolveExpression = exports.resolveReturning = exports.resolveResult = exports.createQueryResult = exports.createJoinSelectEntity = exports.createEntity = void 0;
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.sql);
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.sql === '' && !ignoreInWhere) {
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.sql === '' ? 'TRUE' : resolvedWhereResult.value.sql);
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.sql);
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.sql === '') {
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.sql);
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.sql);
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.sql === '') {
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.sql));
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.sql === '' && !ignoreInWhere) {
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.sql === '' ? 'FALSE' : resolvedWhereResult.value.sql);
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.sql);
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.sql === '' && !ignoreInWhere) {
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.sql === '' ? 'FALSE' : resolvedWhereResult.value.sql);
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.sql);
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.sql, "FROM \"".concat(main.table.schema, "\".\"").concat(main.table.title, "\" \"").concat(main.alias, "\""));
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.sql === '' && !ignoreInJoin) {
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.sql));
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.sql === '' && !ignoreInWhere) {
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.sql === '' ? 'FALSE' : resolvedWhereResult.value.sql);
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.sql);
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.sql === '') {
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.sql, " ) AS \"").concat(column.as, "\""));
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) && dictionary_1.ReservedExpressionKeys.includes(expression[0]))) {
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.sql === '') {
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.sql, " IS NULL"), params));
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.sql, " IS NOT NULL"), params));
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.sql), params));
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.sql), params));
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.sql === '') {
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.sql);
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)(partialQuery(tokens.join(', power( ').substring(3) + ', ' + tmp + ' )'.repeat(tokens.length - 1), params));
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.sql === '') {
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.sql);
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
- 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;
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
- else {
678
- return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "] -> undefined"));
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
- 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;
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
- else {
690
- return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][when] -> neutral"));
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
- 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;
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
- else {
704
- return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases][").concat(cases.indexOf(caseElement), "][then] -> neutral"));
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
- 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));
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.sql === '') {
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.sql);
808
+ tokens.push(otherwiseResult.value.text);
747
809
  }
748
810
  }
749
811
  else {
750
812
  if (!isOtherwiseNeutral) {
751
- tokens.push('ELSE', otherwiseResult.value.sql);
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.sql === '') {
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.sql === '') {
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.sql, " = ").concat(e2Result.value.sql), params));
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.sql, " <> ").concat(e2Result.value.sql), params));
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.sql, " > ").concat(e2Result.value.sql), params));
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.sql, " >= ").concat(e2Result.value.sql), params));
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.sql, " < ").concat(e2Result.value.sql), params));
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.sql, " <= ").concat(e2Result.value.sql), params));
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.sql, " LIKE ").concat(e2Result.value.sql), params));
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.sql, " @> ").concat(e2Result.value.sql), params));
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.sql, " <@ ").concat(e2Result.value.sql), params));
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.sql, " ? ").concat(e2Result.value.sql), params));
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.sql, " - ").concat(e2Result.value.sql), params));
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.sql === '') {
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.sql === '') {
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.sql);
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.sql, " = ").concat(tokens[0]), params));
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.sql, " <> ").concat(tokens[0]), params));
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.sql, " LIKE ").concat(tokens[0]), params));
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.sql, " LIKE ").concat(tokens[0]), params));
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.sql, " ? ").concat(tokens[0]), params));
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.sql, " ? ").concat(tokens[0]), params));
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.sql, " - ").concat(tokens[0]), params));
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.sql, " IN ( ").concat(tokens.join(', '), " )"), params));
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.sql, " NOT IN ( ").concat(tokens.join(', '), " )"), params));
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.sql, " LIKE ALL( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
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.sql, " LIKE SOME( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
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.sql, " ?| ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.sql, " ?& ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.sql, " - ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.sql === '') {
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.sql === '') {
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.sql === '') {
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.sql, " BETWEEN ").concat(e2Result.value.sql, " AND ").concat(e3Result.value.sql), params));
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 (sql, params) {
982
- if (sql === void 0) { sql = ''; }
1049
+ var partialQuery = function (text, params) {
1050
+ if (text === void 0) { text = ''; }
983
1051
  if (params === void 0) { params = []; }
984
- return ({ sql: sql, params: params });
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