@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.
Files changed (96) hide show
  1. package/dist/context.d.ts +56 -583
  2. package/dist/context.d.ts.map +1 -1
  3. package/dist/context.js +41 -18
  4. package/dist/context.js.map +1 -1
  5. package/dist/createModelUtils.d.ts +503 -0
  6. package/dist/createModelUtils.d.ts.map +1 -0
  7. package/dist/{model.js → createModelUtils.js} +16 -13
  8. package/dist/createModelUtils.js.map +1 -0
  9. package/dist/dictionary.d.ts +93 -10
  10. package/dist/dictionary.d.ts.map +1 -1
  11. package/dist/dictionary.js +132 -164
  12. package/dist/dictionary.js.map +1 -1
  13. package/dist/entity.d.ts +687 -2483
  14. package/dist/entity.d.ts.map +1 -1
  15. package/dist/entity.js +164 -189
  16. package/dist/entity.js.map +1 -1
  17. package/dist/hook.d.ts +15 -0
  18. package/dist/hook.d.ts.map +1 -0
  19. package/dist/hook.js +30 -0
  20. package/dist/hook.js.map +1 -0
  21. package/dist/index.d.ts +17 -16
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +54 -15
  24. package/dist/index.js.map +1 -1
  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 +9 -5
  30. package/dist/pool.d.ts.map +1 -1
  31. package/dist/pool.js +1 -26
  32. package/dist/pool.js.map +1 -1
  33. package/dist/schema.d.ts +21 -9
  34. package/dist/schema.d.ts.map +1 -1
  35. package/dist/schema.js +169 -176
  36. package/dist/schema.js.map +1 -1
  37. package/dist/testUtil.d.ts +25 -1
  38. package/dist/testUtil.d.ts.map +1 -1
  39. package/dist/testUtil.js +8 -2
  40. package/dist/testUtil.js.map +1 -1
  41. package/dist/types/Context.d.ts +53 -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 +64 -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/{pool.js → Json.js} +1 -1
  52. package/dist/types/Json.js.map +1 -0
  53. package/dist/types/Model.d.ts +12 -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/{table.d.ts → Table.d.ts} +5 -5
  58. package/dist/types/{table.d.ts.map → Table.d.ts.map} +1 -1
  59. package/dist/types/{json.js → Table.js} +1 -1
  60. package/dist/types/Table.js.map +1 -0
  61. package/dist/types/TypeMapper.d.ts +14 -0
  62. package/dist/types/TypeMapper.d.ts.map +1 -0
  63. package/dist/types/{model.js → TypeMapper.js} +1 -1
  64. package/dist/types/TypeMapper.js.map +1 -0
  65. package/dist/types/postgres.d.ts +3 -6
  66. package/dist/types/postgres.d.ts.map +1 -1
  67. package/dist/utils.d.ts +38 -66
  68. package/dist/utils.d.ts.map +1 -1
  69. package/dist/utils.js +48 -171
  70. package/dist/utils.js.map +1 -1
  71. package/package.json +1 -1
  72. package/dist/U.d.ts +0 -3
  73. package/dist/U.d.ts.map +0 -1
  74. package/dist/U.js +0 -29
  75. package/dist/U.js.map +0 -1
  76. package/dist/model.d.ts +0 -1006
  77. package/dist/model.d.ts.map +0 -1
  78. package/dist/model.js.map +0 -1
  79. package/dist/types/context.d.ts +0 -52
  80. package/dist/types/context.d.ts.map +0 -1
  81. package/dist/types/context.js.map +0 -1
  82. package/dist/types/entity.d.ts +0 -71
  83. package/dist/types/entity.d.ts.map +0 -1
  84. package/dist/types/entity.js.map +0 -1
  85. package/dist/types/json.js.map +0 -1
  86. package/dist/types/model.d.ts +0 -24
  87. package/dist/types/model.d.ts.map +0 -1
  88. package/dist/types/model.js.map +0 -1
  89. package/dist/types/pool.d.ts +0 -19
  90. package/dist/types/pool.d.ts.map +0 -1
  91. package/dist/types/pool.js.map +0 -1
  92. package/dist/types/table.js.map +0 -1
  93. package/dist/types/testUtil.d.ts +0 -27
  94. package/dist/types/testUtil.d.ts.map +0 -1
  95. package/dist/types/testUtil.js +0 -3
  96. 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.ReservedExpressionKeys = exports.createJoinSelectEntity = exports.createEntity = void 0;
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.text);
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.text === '' && !ignoreInWhere) {
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.text === '' ? 'TRUE' : resolvedWhereResult.value.text);
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.text);
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(U_1.U.stringify(column.value, true));
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(U_1.U.stringify(new Date(), true));
159
+ rowTokens.push(stringify(new Date(), true));
161
160
  continue;
162
161
  }
163
162
  if (column.nullable) {
164
- rowTokens.push(U_1.U.stringify(null));
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.text === '') {
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.text);
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.text);
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.text === '') {
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.text));
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(U_1.U.stringify(new Date(), true)));
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.text === '' && !ignoreInWhere) {
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.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
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.text);
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.text === '' && !ignoreInWhere) {
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.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
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.text);
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.text, "FROM \"".concat(main.table.schema, "\".\"").concat(main.table.title, "\" \"").concat(main.alias, "\""));
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.text === '' && !ignoreInJoin) {
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.text));
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.text === '' && !ignoreInWhere) {
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.text === '' ? 'FALSE' : resolvedWhereResult.value.text);
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.text);
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] = U_1.U.cast(rows[i][column], getColumnType(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.text === '') {
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.text, " ) AS \"").concat(column.as, "\""));
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(U_1.U.stringify(expression, true))));
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++), [U_1.U.stringify(expression, false)]));
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"), [U_1.U.stringify(expression, false)]));
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(U_1.U.stringify(expression[1], false));
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.text === '') {
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.text, " IS NULL"), params));
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.text, " IS NOT NULL"), params));
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.text), params));
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.text), params));
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.text === '') {
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.text);
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.text === '') {
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.text);
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
- 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
- }
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
- 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));
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
- 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
- }
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
- 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));
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
- 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
- }
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
- params.push.apply(params, thenResult.value.params);
769
- paramsStart += thenResult.value.params.length;
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
- if (tokens.length === 0 && !ignore) {
777
- return (0, never_catch_1.err)("<".concat((0, dictionary_1.toReservedExpressionKeyDescription)(expression[0]), ">[cases] -> empty"));
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.text === '') {
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.text);
746
+ tokens.push(otherwiseResult.value.sql);
809
747
  }
810
748
  }
811
749
  else {
812
750
  if (!isOtherwiseNeutral) {
813
- tokens.push('ELSE', otherwiseResult.value.text);
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.text === '') {
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.text === '') {
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.text, " = ").concat(e2Result.value.text), params));
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.text, " <> ").concat(e2Result.value.text), params));
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.text, " > ").concat(e2Result.value.text), params));
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.text, " >= ").concat(e2Result.value.text), params));
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.text, " < ").concat(e2Result.value.text), params));
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.text, " <= ").concat(e2Result.value.text), params));
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.text, " LIKE ").concat(e2Result.value.text), params));
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.text, " @> ").concat(e2Result.value.text), params));
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.text, " <@ ").concat(e2Result.value.text), params));
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.text, " ? ").concat(e2Result.value.text), params));
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.text, " - ").concat(e2Result.value.text), params));
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.text === '') {
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.text === '') {
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.text);
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.text, " = ").concat(tokens[0]), params));
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.text, " <> ").concat(tokens[0]), params));
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.text, " LIKE ").concat(tokens[0]), params));
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.text, " LIKE ").concat(tokens[0]), params));
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.text, " ? ").concat(tokens[0]), params));
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.text, " ? ").concat(tokens[0]), params));
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.text, " - ").concat(tokens[0]), params));
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.text, " IN ( ").concat(tokens.join(', '), " )"), params));
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.text, " NOT IN ( ").concat(tokens.join(', '), " )"), params));
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.text, " LIKE ALL( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
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.text, " LIKE SOME( ARRAY[ ").concat(tokens.join(', '), " ] )"), params));
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.text, " ?| ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.text, " ?& ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.text, " - ARRAY[ ").concat(tokens.join(', '), " ]"), params));
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.text === '') {
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.text === '') {
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.text === '') {
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.text, " BETWEEN ").concat(e2Result.value.text, " AND ").concat(e3Result.value.text), params));
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 (text, params) {
1049
- if (text === void 0) { text = ''; }
981
+ var partialQuery = function (sql, params) {
982
+ if (sql === void 0) { sql = ''; }
1050
983
  if (params === void 0) { params = []; }
1051
- return ({ text: text, params: params });
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