remult 3.4.0-next.9 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/internals.js +1 -0
- package/esm/remult-knex/index.js +46 -73
- package/esm/src/data-api.js +42 -31
- package/esm/src/data-providers/sql-database.js +44 -39
- package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +35 -34
- package/esm/src/filter/walk-filter.js +29 -0
- package/esm/src/valueConverters.js +11 -0
- package/internals.d.ts +1 -0
- package/internals.js +4 -1
- package/package.json +1 -1
- package/remult-knex/index.d.ts +3 -2
- package/remult-knex/index.js +118 -164
- package/src/data-api.d.ts +4 -0
- package/src/data-api.js +51 -48
- package/src/data-providers/sql-database.d.ts +16 -7
- package/src/data-providers/sql-database.js +100 -90
- package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +8 -3
- package/src/filter/filter-consumer-bridge-to-sql-request.js +40 -47
- package/src/filter/walk-filter.d.ts +3 -0
- package/src/filter/walk-filter.js +56 -0
- package/src/sql-command.d.ts +5 -0
- package/src/valueConverters.d.ts +4 -1
- package/src/valueConverters.js +13 -0
package/remult-knex/index.js
CHANGED
|
@@ -74,43 +74,18 @@ var KnexDataProvider = /** @class */ (function () {
|
|
|
74
74
|
throw 'the data provider is not an KnexDataProvider';
|
|
75
75
|
return r.knex;
|
|
76
76
|
};
|
|
77
|
+
Object.defineProperty(KnexDataProvider.prototype, "jsonColumnStorage", {
|
|
78
|
+
get: function () {
|
|
79
|
+
if (!supportsJsonLoadingAndSaving(this.knex))
|
|
80
|
+
return 'text';
|
|
81
|
+
if (this.knex.client.config.client === 'mysql2')
|
|
82
|
+
return 'textOnWrite';
|
|
83
|
+
return 'native';
|
|
84
|
+
},
|
|
85
|
+
enumerable: false,
|
|
86
|
+
configurable: true
|
|
87
|
+
});
|
|
77
88
|
KnexDataProvider.prototype.getEntityDataProvider = function (entity) {
|
|
78
|
-
var e_1, _a, e_2, _b;
|
|
79
|
-
if (!supportsJsonLoadingAndSaving(this.knex))
|
|
80
|
-
try {
|
|
81
|
-
for (var _c = tslib_1.__values(entity.fields.toArray()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
82
|
-
var f = _d.value;
|
|
83
|
-
if (f.valueConverter.fieldTypeInDb === 'json') {
|
|
84
|
-
//@ts-ignore
|
|
85
|
-
f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb, fromDb: valueConverters_js_1.ValueConverters.JsonString.fromDb });
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
90
|
-
finally {
|
|
91
|
-
try {
|
|
92
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
93
|
-
}
|
|
94
|
-
finally { if (e_1) throw e_1.error; }
|
|
95
|
-
}
|
|
96
|
-
else if (this.knex.client.config.client === 'mysql2') {
|
|
97
|
-
try {
|
|
98
|
-
for (var _e = tslib_1.__values(entity.fields.toArray()), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
99
|
-
var f = _f.value;
|
|
100
|
-
if (f.valueConverter.fieldTypeInDb === 'json') {
|
|
101
|
-
//@ts-ignore
|
|
102
|
-
f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
107
|
-
finally {
|
|
108
|
-
try {
|
|
109
|
-
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
110
|
-
}
|
|
111
|
-
finally { if (e_2) throw e_2.error; }
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
89
|
return new KnexEntityDataProvider(entity, this.knex, this.wrapIdentifier, this);
|
|
115
90
|
};
|
|
116
91
|
KnexDataProvider.prototype.transaction = function (action) {
|
|
@@ -162,7 +137,7 @@ var KnexDataProvider = /** @class */ (function () {
|
|
|
162
137
|
_a = FilterConsumerBridgeToKnexRequest.bind;
|
|
163
138
|
return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_1.dbNamesOfWithForceSqlExpression)(repo.metadata, wrapIdentifier)];
|
|
164
139
|
case 1:
|
|
165
|
-
b = new (_a.apply(FilterConsumerBridgeToKnexRequest, [void 0, _b.sent(), wrapIdentifier !== null && wrapIdentifier !== void 0 ? wrapIdentifier : wrapIdentifier]))();
|
|
140
|
+
b = new (_a.apply(FilterConsumerBridgeToKnexRequest, [void 0, _b.sent(), wrapIdentifier !== null && wrapIdentifier !== void 0 ? wrapIdentifier : wrapIdentifier, (0, sql_database_js_1.jsonColumnStorageOf)(repo)]))();
|
|
166
141
|
b._addWhere = false;
|
|
167
142
|
return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(repo)._translateWhereToFilter(condition)];
|
|
168
143
|
case 2: return [4 /*yield*/, (_b.sent()).__applyToConsumer(b)];
|
|
@@ -218,7 +193,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
218
193
|
return ((_a = _this.knex.client.config.client) === null || _a === void 0 ? void 0 : _a.includes('mssql'))
|
|
219
194
|
? ' offset ' + offset + ' rows fetch next ' + limit + ' rows only'
|
|
220
195
|
: ' limit ' + limit + ' offset ' + offset;
|
|
221
|
-
}
|
|
196
|
+
},
|
|
197
|
+
this.dp.jsonColumnStorage]))];
|
|
222
198
|
}
|
|
223
199
|
});
|
|
224
200
|
});
|
|
@@ -236,7 +212,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
236
212
|
case 0: return [4 /*yield*/, this.init()];
|
|
237
213
|
case 1:
|
|
238
214
|
e = _a.sent();
|
|
239
|
-
br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
|
|
215
|
+
br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
|
|
240
216
|
where.__applyToConsumer(br);
|
|
241
217
|
return [4 /*yield*/, br.resolveWhere()];
|
|
242
218
|
case 2:
|
|
@@ -261,7 +237,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
261
237
|
KnexEntityDataProvider.prototype.find = function (options) {
|
|
262
238
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
263
239
|
var e, cols, colKeys, _a, _b, x, name_1, query, br, r_1, r;
|
|
264
|
-
var
|
|
240
|
+
var e_1, _c;
|
|
241
|
+
var _this = this;
|
|
265
242
|
return tslib_1.__generator(this, function (_d) {
|
|
266
243
|
switch (_d.label) {
|
|
267
244
|
case 0: return [4 /*yield*/, this.init()];
|
|
@@ -285,16 +262,16 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
285
262
|
}
|
|
286
263
|
}
|
|
287
264
|
}
|
|
288
|
-
catch (
|
|
265
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
289
266
|
finally {
|
|
290
267
|
try {
|
|
291
268
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
292
269
|
}
|
|
293
|
-
finally { if (
|
|
270
|
+
finally { if (e_1) throw e_1.error; }
|
|
294
271
|
}
|
|
295
272
|
query = this.getEntityFrom(e).select(cols);
|
|
296
273
|
if (!(options === null || options === void 0 ? void 0 : options.where)) return [3 /*break*/, 3];
|
|
297
|
-
br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
|
|
274
|
+
br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
|
|
298
275
|
options.where.__applyToConsumer(br);
|
|
299
276
|
return [4 /*yield*/, br.resolveWhere()];
|
|
300
277
|
case 2:
|
|
@@ -325,7 +302,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
325
302
|
for (var m in y) {
|
|
326
303
|
var field = colKeys[i++];
|
|
327
304
|
try {
|
|
328
|
-
result[field.key] =
|
|
305
|
+
result[field.key] = (0, valueConverters_js_1.fromDbColumn)(field, y[m], _this.dp.jsonColumnStorage);
|
|
329
306
|
}
|
|
330
307
|
catch (err) {
|
|
331
308
|
throw new Error('Failed to load from db:' + field.key + '\r\n' + err);
|
|
@@ -362,14 +339,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
362
339
|
};
|
|
363
340
|
KnexEntityDataProvider.prototype.update = function (id, data, options) {
|
|
364
341
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
365
|
-
var e, f, updateObject, _a, _b, x, v, key,
|
|
366
|
-
var
|
|
342
|
+
var e, f, updateObject, _a, _b, x, v, key, e_2_1, where;
|
|
343
|
+
var e_2, _c;
|
|
367
344
|
return tslib_1.__generator(this, function (_d) {
|
|
368
345
|
switch (_d.label) {
|
|
369
346
|
case 0: return [4 /*yield*/, this.init()];
|
|
370
347
|
case 1:
|
|
371
348
|
e = _d.sent();
|
|
372
|
-
f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
|
|
349
|
+
f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
|
|
373
350
|
filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
|
|
374
351
|
updateObject = {};
|
|
375
352
|
_d.label = 2;
|
|
@@ -384,7 +361,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
384
361
|
return [3 /*break*/, 6];
|
|
385
362
|
case 4:
|
|
386
363
|
if (!(data[x.key] !== undefined)) return [3 /*break*/, 6];
|
|
387
|
-
v = translateValueAndHandleArrayAndHandleArray(x, data[x.key]);
|
|
364
|
+
v = translateValueAndHandleArrayAndHandleArray(x, data[x.key], this.dp.jsonColumnStorage);
|
|
388
365
|
if (!(v !== undefined)) return [3 /*break*/, 6];
|
|
389
366
|
return [4 /*yield*/, e.$dbNameOf(x)];
|
|
390
367
|
case 5:
|
|
@@ -396,14 +373,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
396
373
|
return [3 /*break*/, 3];
|
|
397
374
|
case 7: return [3 /*break*/, 10];
|
|
398
375
|
case 8:
|
|
399
|
-
|
|
400
|
-
|
|
376
|
+
e_2_1 = _d.sent();
|
|
377
|
+
e_2 = { error: e_2_1 };
|
|
401
378
|
return [3 /*break*/, 10];
|
|
402
379
|
case 9:
|
|
403
380
|
try {
|
|
404
381
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
405
382
|
}
|
|
406
|
-
finally { if (
|
|
383
|
+
finally { if (e_2) throw e_2.error; }
|
|
407
384
|
return [7 /*endfinally*/];
|
|
408
385
|
case 10: return [4 /*yield*/, f.resolveWhere()];
|
|
409
386
|
case 11:
|
|
@@ -432,7 +409,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
432
409
|
return [4 /*yield*/, this.init()];
|
|
433
410
|
case 1:
|
|
434
411
|
e = _b.sent();
|
|
435
|
-
f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
|
|
412
|
+
f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
|
|
436
413
|
filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, (_a = this.entity.idMetadata).getIdFilter.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(ids), false))).__applyToConsumer(f);
|
|
437
414
|
return [4 /*yield*/, f.resolveWhere()];
|
|
438
415
|
case 2:
|
|
@@ -449,8 +426,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
449
426
|
};
|
|
450
427
|
KnexEntityDataProvider.prototype.insert = function (data, options) {
|
|
451
428
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
452
|
-
var result_1, data_1, data_1_1, row, _a, _b,
|
|
453
|
-
var
|
|
429
|
+
var result_1, data_1, data_1_1, row, _a, _b, e_3_1, e, batches, result, batches_1, batches_1_1, batch, _c, _d, _e, _f, e_4_1;
|
|
430
|
+
var e_3, _g, e_4, _h;
|
|
454
431
|
var _this = this;
|
|
455
432
|
return tslib_1.__generator(this, function (_j) {
|
|
456
433
|
switch (_j.label) {
|
|
@@ -479,20 +456,22 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
479
456
|
return [3 /*break*/, 2];
|
|
480
457
|
case 5: return [3 /*break*/, 8];
|
|
481
458
|
case 6:
|
|
482
|
-
|
|
483
|
-
|
|
459
|
+
e_3_1 = _j.sent();
|
|
460
|
+
e_3 = { error: e_3_1 };
|
|
484
461
|
return [3 /*break*/, 8];
|
|
485
462
|
case 7:
|
|
486
463
|
try {
|
|
487
464
|
if (data_1_1 && !data_1_1.done && (_g = data_1.return)) _g.call(data_1);
|
|
488
465
|
}
|
|
489
|
-
finally { if (
|
|
466
|
+
finally { if (e_3) throw e_3.error; }
|
|
490
467
|
return [7 /*endfinally*/];
|
|
491
468
|
case 8: return [2 /*return*/, result_1];
|
|
492
469
|
case 9: return [4 /*yield*/, this.init()];
|
|
493
470
|
case 10:
|
|
494
471
|
e = _j.sent();
|
|
495
|
-
batches = splitByMaxParameters(data, function (row) {
|
|
472
|
+
batches = splitByMaxParameters(data, function (row) {
|
|
473
|
+
return countKnexInsertBindParameters(_this.entity, e, row, _this.dp.jsonColumnStorage);
|
|
474
|
+
}, knexMaxParametersInOneSqlStatement(this.knex));
|
|
496
475
|
result = [];
|
|
497
476
|
_j.label = 11;
|
|
498
477
|
case 11:
|
|
@@ -514,14 +493,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
514
493
|
return [3 /*break*/, 12];
|
|
515
494
|
case 15: return [3 /*break*/, 18];
|
|
516
495
|
case 16:
|
|
517
|
-
|
|
518
|
-
|
|
496
|
+
e_4_1 = _j.sent();
|
|
497
|
+
e_4 = { error: e_4_1 };
|
|
519
498
|
return [3 /*break*/, 18];
|
|
520
499
|
case 17:
|
|
521
500
|
try {
|
|
522
501
|
if (batches_1_1 && !batches_1_1.done && (_h = batches_1.return)) _h.call(batches_1);
|
|
523
502
|
}
|
|
524
|
-
finally { if (
|
|
503
|
+
finally { if (e_4) throw e_4.error; }
|
|
525
504
|
return [7 /*endfinally*/];
|
|
526
505
|
case 18: return [2 /*return*/, result];
|
|
527
506
|
}
|
|
@@ -530,8 +509,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
530
509
|
};
|
|
531
510
|
KnexEntityDataProvider.prototype.insertBatch = function (batch, e, options) {
|
|
532
511
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
533
|
-
var cols, _loop_1, _a, _b, x, insertObjects, batch_1, batch_1_1, row, insertObject, cols_1, cols_1_1, x, v, key,
|
|
534
|
-
var
|
|
512
|
+
var cols, _loop_1, _a, _b, x, insertObjects, batch_1, batch_1_1, row, insertObject, cols_1, cols_1_1, x, v, key, e_5_1, e_6_1, insert, wantRows, result, ids;
|
|
513
|
+
var e_7, _c, e_6, _d, e_5, _e;
|
|
535
514
|
var _this = this;
|
|
536
515
|
return tslib_1.__generator(this, function (_f) {
|
|
537
516
|
switch (_f.label) {
|
|
@@ -541,8 +520,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
541
520
|
if ((0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e))
|
|
542
521
|
return "continue";
|
|
543
522
|
if (batch.some(function (row) {
|
|
544
|
-
return translateValueAndHandleArrayAndHandleArray(x, row[x.key]) !=
|
|
545
|
-
undefined;
|
|
523
|
+
return translateValueAndHandleArrayAndHandleArray(x, row[x.key], _this.dp.jsonColumnStorage) != undefined;
|
|
546
524
|
}))
|
|
547
525
|
cols.push(x);
|
|
548
526
|
};
|
|
@@ -552,12 +530,12 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
552
530
|
_loop_1(x);
|
|
553
531
|
}
|
|
554
532
|
}
|
|
555
|
-
catch (
|
|
533
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
556
534
|
finally {
|
|
557
535
|
try {
|
|
558
536
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
559
537
|
}
|
|
560
|
-
finally { if (
|
|
538
|
+
finally { if (e_7) throw e_7.error; }
|
|
561
539
|
}
|
|
562
540
|
insertObjects = [];
|
|
563
541
|
_f.label = 1;
|
|
@@ -572,12 +550,12 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
572
550
|
_f.label = 3;
|
|
573
551
|
case 3:
|
|
574
552
|
_f.trys.push([3, 8, 9, 10]);
|
|
575
|
-
cols_1 = (
|
|
553
|
+
cols_1 = (e_5 = void 0, tslib_1.__values(cols)), cols_1_1 = cols_1.next();
|
|
576
554
|
_f.label = 4;
|
|
577
555
|
case 4:
|
|
578
556
|
if (!!cols_1_1.done) return [3 /*break*/, 7];
|
|
579
557
|
x = cols_1_1.value;
|
|
580
|
-
v = translateValueAndHandleArrayAndHandleArray(x, row[x.key]);
|
|
558
|
+
v = translateValueAndHandleArrayAndHandleArray(x, row[x.key], this.dp.jsonColumnStorage);
|
|
581
559
|
return [4 /*yield*/, e.$dbNameOf(x)];
|
|
582
560
|
case 5:
|
|
583
561
|
key = _f.sent();
|
|
@@ -593,14 +571,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
593
571
|
return [3 /*break*/, 4];
|
|
594
572
|
case 7: return [3 /*break*/, 10];
|
|
595
573
|
case 8:
|
|
596
|
-
|
|
597
|
-
|
|
574
|
+
e_5_1 = _f.sent();
|
|
575
|
+
e_5 = { error: e_5_1 };
|
|
598
576
|
return [3 /*break*/, 10];
|
|
599
577
|
case 9:
|
|
600
578
|
try {
|
|
601
579
|
if (cols_1_1 && !cols_1_1.done && (_e = cols_1.return)) _e.call(cols_1);
|
|
602
580
|
}
|
|
603
|
-
finally { if (
|
|
581
|
+
finally { if (e_5) throw e_5.error; }
|
|
604
582
|
return [7 /*endfinally*/];
|
|
605
583
|
case 10:
|
|
606
584
|
insertObjects.push(insertObject);
|
|
@@ -610,14 +588,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
610
588
|
return [3 /*break*/, 2];
|
|
611
589
|
case 12: return [3 /*break*/, 15];
|
|
612
590
|
case 13:
|
|
613
|
-
|
|
614
|
-
|
|
591
|
+
e_6_1 = _f.sent();
|
|
592
|
+
e_6 = { error: e_6_1 };
|
|
615
593
|
return [3 /*break*/, 15];
|
|
616
594
|
case 14:
|
|
617
595
|
try {
|
|
618
596
|
if (batch_1_1 && !batch_1_1.done && (_d = batch_1.return)) _d.call(batch_1);
|
|
619
597
|
}
|
|
620
|
-
finally { if (
|
|
598
|
+
finally { if (e_6) throw e_6.error; }
|
|
621
599
|
return [7 /*endfinally*/];
|
|
622
600
|
case 15:
|
|
623
601
|
insert = this.getEntityFrom(e).insert(insertObjects);
|
|
@@ -627,9 +605,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
627
605
|
case 16:
|
|
628
606
|
result = _f.sent();
|
|
629
607
|
ids = result.map(function (r) {
|
|
630
|
-
return r && typeof r === 'object'
|
|
631
|
-
? r[_this.entity.idMetadata.field.dbName]
|
|
632
|
-
: r;
|
|
608
|
+
return r && typeof r === 'object' ? r[_this.entity.idMetadata.field.dbName] : r;
|
|
633
609
|
});
|
|
634
610
|
return [2 /*return*/, this.loadRowsByIds(ids)];
|
|
635
611
|
case 17: return [4 /*yield*/, insert];
|
|
@@ -668,8 +644,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
668
644
|
//@internal
|
|
669
645
|
KnexEntityDataProvider.prototype.insertOne = function (data, options) {
|
|
670
646
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
671
|
-
var e, insertObject, _a, _b, x, v, key,
|
|
672
|
-
var
|
|
647
|
+
var e, insertObject, _a, _b, x, v, key, e_8_1, insert, newId_1, result, result;
|
|
648
|
+
var e_8, _c;
|
|
673
649
|
var _this = this;
|
|
674
650
|
return tslib_1.__generator(this, function (_d) {
|
|
675
651
|
switch (_d.label) {
|
|
@@ -688,7 +664,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
688
664
|
if (!(0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e)) return [3 /*break*/, 4];
|
|
689
665
|
return [3 /*break*/, 6];
|
|
690
666
|
case 4:
|
|
691
|
-
v = translateValueAndHandleArrayAndHandleArray(x, data[x.key]);
|
|
667
|
+
v = translateValueAndHandleArrayAndHandleArray(x, data[x.key], this.dp.jsonColumnStorage);
|
|
692
668
|
if (!(v != undefined)) return [3 /*break*/, 6];
|
|
693
669
|
return [4 /*yield*/, e.$dbNameOf(x)];
|
|
694
670
|
case 5:
|
|
@@ -700,14 +676,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
700
676
|
return [3 /*break*/, 3];
|
|
701
677
|
case 7: return [3 /*break*/, 10];
|
|
702
678
|
case 8:
|
|
703
|
-
|
|
704
|
-
|
|
679
|
+
e_8_1 = _d.sent();
|
|
680
|
+
e_8 = { error: e_8_1 };
|
|
705
681
|
return [3 /*break*/, 10];
|
|
706
682
|
case 9:
|
|
707
683
|
try {
|
|
708
684
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
709
685
|
}
|
|
710
|
-
finally { if (
|
|
686
|
+
finally { if (e_8) throw e_8.error; }
|
|
711
687
|
return [7 /*endfinally*/];
|
|
712
688
|
case 10:
|
|
713
689
|
insert = this.getEntityFrom(e).insert(insertObject);
|
|
@@ -748,17 +724,18 @@ var KnexEntityDataProvider = /** @class */ (function () {
|
|
|
748
724
|
return KnexEntityDataProvider;
|
|
749
725
|
}());
|
|
750
726
|
var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
751
|
-
function FilterConsumerBridgeToKnexRequest(innerNameProvider, rawSqlWrapIdentifier) {
|
|
727
|
+
function FilterConsumerBridgeToKnexRequest(innerNameProvider, rawSqlWrapIdentifier, jsonColumnStorage) {
|
|
752
728
|
this.innerNameProvider = innerNameProvider;
|
|
753
729
|
this.rawSqlWrapIdentifier = rawSqlWrapIdentifier;
|
|
730
|
+
this.jsonColumnStorage = jsonColumnStorage;
|
|
754
731
|
this._addWhere = true;
|
|
755
732
|
this.promises = [];
|
|
756
733
|
this.result = [];
|
|
757
734
|
}
|
|
758
735
|
FilterConsumerBridgeToKnexRequest.prototype.resolveWhere = function () {
|
|
759
736
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
760
|
-
var p, p_1, p_1_1, pr,
|
|
761
|
-
var
|
|
737
|
+
var p, p_1, p_1_1, pr, e_9_1;
|
|
738
|
+
var e_9, _a;
|
|
762
739
|
return tslib_1.__generator(this, function (_b) {
|
|
763
740
|
switch (_b.label) {
|
|
764
741
|
case 0:
|
|
@@ -768,7 +745,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
768
745
|
_b.label = 1;
|
|
769
746
|
case 1:
|
|
770
747
|
_b.trys.push([1, 6, 7, 8]);
|
|
771
|
-
p_1 = (
|
|
748
|
+
p_1 = (e_9 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
|
|
772
749
|
_b.label = 2;
|
|
773
750
|
case 2:
|
|
774
751
|
if (!!p_1_1.done) return [3 /*break*/, 5];
|
|
@@ -782,14 +759,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
782
759
|
return [3 /*break*/, 2];
|
|
783
760
|
case 5: return [3 /*break*/, 8];
|
|
784
761
|
case 6:
|
|
785
|
-
|
|
786
|
-
|
|
762
|
+
e_9_1 = _b.sent();
|
|
763
|
+
e_9 = { error: e_9_1 };
|
|
787
764
|
return [3 /*break*/, 8];
|
|
788
765
|
case 7:
|
|
789
766
|
try {
|
|
790
767
|
if (p_1_1 && !p_1_1.done && (_a = p_1.return)) _a.call(p_1);
|
|
791
768
|
}
|
|
792
|
-
finally { if (
|
|
769
|
+
finally { if (e_9) throw e_9.error; }
|
|
793
770
|
return [7 /*endfinally*/];
|
|
794
771
|
case 8: return [3 /*break*/, 0];
|
|
795
772
|
case 9: return [2 /*return*/, this.result];
|
|
@@ -803,8 +780,8 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
803
780
|
FilterConsumerBridgeToKnexRequest.prototype.or = function (orElements) {
|
|
804
781
|
var _this = this;
|
|
805
782
|
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
806
|
-
var result, _loop_2, this_1, orElements_1, orElements_1_1, element, state_1,
|
|
807
|
-
var
|
|
783
|
+
var result, _loop_2, this_1, orElements_1, orElements_1_1, element, state_1, e_10_1;
|
|
784
|
+
var e_10, _a;
|
|
808
785
|
return tslib_1.__generator(this, function (_b) {
|
|
809
786
|
switch (_b.label) {
|
|
810
787
|
case 0:
|
|
@@ -814,7 +791,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
814
791
|
return tslib_1.__generator(this, function (_c) {
|
|
815
792
|
switch (_c.label) {
|
|
816
793
|
case 0:
|
|
817
|
-
f = new FilterConsumerBridgeToKnexRequest(this_1.innerNameProvider, this_1.rawSqlWrapIdentifier);
|
|
794
|
+
f = new FilterConsumerBridgeToKnexRequest(this_1.innerNameProvider, this_1.rawSqlWrapIdentifier, this_1.jsonColumnStorage);
|
|
818
795
|
f._addWhere = false;
|
|
819
796
|
element.__applyToConsumer(f);
|
|
820
797
|
return [4 /*yield*/, f.resolveWhere()];
|
|
@@ -853,14 +830,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
853
830
|
return [3 /*break*/, 2];
|
|
854
831
|
case 5: return [3 /*break*/, 8];
|
|
855
832
|
case 6:
|
|
856
|
-
|
|
857
|
-
|
|
833
|
+
e_10_1 = _b.sent();
|
|
834
|
+
e_10 = { error: e_10_1 };
|
|
858
835
|
return [3 /*break*/, 8];
|
|
859
836
|
case 7:
|
|
860
837
|
try {
|
|
861
838
|
if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
|
|
862
839
|
}
|
|
863
|
-
finally { if (
|
|
840
|
+
finally { if (e_10) throw e_10.error; }
|
|
864
841
|
return [7 /*endfinally*/];
|
|
865
842
|
case 8:
|
|
866
843
|
if (result.length > 0) {
|
|
@@ -878,7 +855,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
878
855
|
return tslib_1.__generator(this, function (_a) {
|
|
879
856
|
switch (_a.label) {
|
|
880
857
|
case 0:
|
|
881
|
-
f = new FilterConsumerBridgeToKnexRequest(this.innerNameProvider, this.rawSqlWrapIdentifier);
|
|
858
|
+
f = new FilterConsumerBridgeToKnexRequest(this.innerNameProvider, this.rawSqlWrapIdentifier, this.jsonColumnStorage);
|
|
882
859
|
f._addWhere = false;
|
|
883
860
|
element.__applyToConsumer(f);
|
|
884
861
|
return [4 /*yield*/, f.resolveWhere()];
|
|
@@ -911,7 +888,9 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
911
888
|
FilterConsumerBridgeToKnexRequest.prototype.isIn = function (col, val) {
|
|
912
889
|
var _this = this;
|
|
913
890
|
this.result.push(function (knex) {
|
|
914
|
-
return knex.whereIn(_this.innerNameProvider.$dbNameOf(col), val.map(function (x) {
|
|
891
|
+
return knex.whereIn(_this.innerNameProvider.$dbNameOf(col), val.map(function (x) {
|
|
892
|
+
return translateValueAndHandleArrayAndHandleArray(col, x, _this.jsonColumnStorage);
|
|
893
|
+
}));
|
|
915
894
|
});
|
|
916
895
|
};
|
|
917
896
|
FilterConsumerBridgeToKnexRequest.prototype.isEqualTo = function (col, val) {
|
|
@@ -933,52 +912,26 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
933
912
|
this.add(col, val, '<');
|
|
934
913
|
};
|
|
935
914
|
FilterConsumerBridgeToKnexRequest.prototype.containsCaseInsensitive = function (col, val) {
|
|
936
|
-
|
|
937
|
-
this.result.push(function (b) {
|
|
938
|
-
return b.whereRaw('lower (' +
|
|
939
|
-
b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
|
|
940
|
-
") like lower ('%" +
|
|
941
|
-
val.replace(/'/g, "''") +
|
|
942
|
-
"%')");
|
|
943
|
-
});
|
|
944
|
-
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
945
|
-
return [2 /*return*/];
|
|
946
|
-
}); }); })());
|
|
915
|
+
this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%');
|
|
947
916
|
};
|
|
948
917
|
FilterConsumerBridgeToKnexRequest.prototype.notContainsCaseInsensitive = function (col, val) {
|
|
949
|
-
|
|
950
|
-
this.result.push(function (b) {
|
|
951
|
-
return b.whereRaw('not lower (' +
|
|
952
|
-
b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
|
|
953
|
-
") like lower ('%" +
|
|
954
|
-
val.replace(/'/g, "''") +
|
|
955
|
-
"%')");
|
|
956
|
-
});
|
|
957
|
-
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
958
|
-
return [2 /*return*/];
|
|
959
|
-
}); }); })());
|
|
918
|
+
this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%', 'not ');
|
|
960
919
|
};
|
|
961
920
|
FilterConsumerBridgeToKnexRequest.prototype.startsWithCaseInsensitive = function (col, val) {
|
|
962
|
-
|
|
963
|
-
this.result.push(function (b) {
|
|
964
|
-
return b.whereRaw('lower (' +
|
|
965
|
-
b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
|
|
966
|
-
") like lower ('" +
|
|
967
|
-
val.replace(/'/g, "''") +
|
|
968
|
-
"%')");
|
|
969
|
-
});
|
|
970
|
-
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
971
|
-
return [2 /*return*/];
|
|
972
|
-
}); }); })());
|
|
921
|
+
this.like(col, (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%');
|
|
973
922
|
};
|
|
974
923
|
FilterConsumerBridgeToKnexRequest.prototype.endsWithCaseInsensitive = function (col, val) {
|
|
924
|
+
this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val));
|
|
925
|
+
};
|
|
926
|
+
FilterConsumerBridgeToKnexRequest.prototype.like = function (col, pattern, not) {
|
|
975
927
|
var _this = this;
|
|
928
|
+
if (not === void 0) { not = ''; }
|
|
976
929
|
this.result.push(function (b) {
|
|
977
|
-
return b.whereRaw(
|
|
930
|
+
return b.whereRaw(not +
|
|
931
|
+
'lower (' +
|
|
978
932
|
b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
"')");
|
|
933
|
+
') like lower (?)' +
|
|
934
|
+
filter_consumer_bridge_to_sql_request_js_1.LIKE_ESCAPE_SQL, [pattern]);
|
|
982
935
|
});
|
|
983
936
|
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
984
937
|
return [2 /*return*/];
|
|
@@ -987,7 +940,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
987
940
|
FilterConsumerBridgeToKnexRequest.prototype.add = function (col, val, operator) {
|
|
988
941
|
var _this = this;
|
|
989
942
|
this.result.push(function (b) {
|
|
990
|
-
return b.where(_this.innerNameProvider.$dbNameOf(col), operator, translateValueAndHandleArrayAndHandleArray(col, val));
|
|
943
|
+
return b.where(_this.innerNameProvider.$dbNameOf(col), operator, translateValueAndHandleArrayAndHandleArray(col, val, _this.jsonColumnStorage));
|
|
991
944
|
});
|
|
992
945
|
};
|
|
993
946
|
FilterConsumerBridgeToKnexRequest.prototype.databaseCustom = function (databaseCustom) {
|
|
@@ -1006,7 +959,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
1006
959
|
case 2:
|
|
1007
960
|
if (!(databaseCustom === null || databaseCustom === void 0 ? void 0 : databaseCustom.buildSql)) return [3 /*break*/, 4];
|
|
1008
961
|
r_2 = new KnexCommandHelper();
|
|
1009
|
-
item = new filter_consumer_bridge_to_sql_request_js_1.CustomSqlFilterBuilder(r_2, this.rawSqlWrapIdentifier);
|
|
962
|
+
item = new filter_consumer_bridge_to_sql_request_js_1.CustomSqlFilterBuilder(r_2, this.rawSqlWrapIdentifier, this.jsonColumnStorage);
|
|
1010
963
|
return [4 /*yield*/, databaseCustom.buildSql(item)];
|
|
1011
964
|
case 3:
|
|
1012
965
|
sql_1 = _c.sent();
|
|
@@ -1030,8 +983,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1030
983
|
}
|
|
1031
984
|
KnexSchemaBuilder.prototype.ensureSchema = function (entities) {
|
|
1032
985
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1033
|
-
var entities_1, entities_1_1, entity, e, err_2,
|
|
1034
|
-
var
|
|
986
|
+
var entities_1, entities_1_1, entity, e, err_2, e_11_1;
|
|
987
|
+
var e_11, _a;
|
|
1035
988
|
return tslib_1.__generator(this, function (_b) {
|
|
1036
989
|
switch (_b.label) {
|
|
1037
990
|
case 0:
|
|
@@ -1065,14 +1018,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1065
1018
|
return [3 /*break*/, 1];
|
|
1066
1019
|
case 9: return [3 /*break*/, 12];
|
|
1067
1020
|
case 10:
|
|
1068
|
-
|
|
1069
|
-
|
|
1021
|
+
e_11_1 = _b.sent();
|
|
1022
|
+
e_11 = { error: e_11_1 };
|
|
1070
1023
|
return [3 /*break*/, 12];
|
|
1071
1024
|
case 11:
|
|
1072
1025
|
try {
|
|
1073
1026
|
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
1074
1027
|
}
|
|
1075
|
-
finally { if (
|
|
1028
|
+
finally { if (e_11) throw e_11.error; }
|
|
1076
1029
|
return [7 /*endfinally*/];
|
|
1077
1030
|
case 12: return [2 /*return*/];
|
|
1078
1031
|
}
|
|
@@ -1100,7 +1053,7 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1100
1053
|
});
|
|
1101
1054
|
};
|
|
1102
1055
|
KnexSchemaBuilder.prototype.createTableKnexCommand = function (entity, e) {
|
|
1103
|
-
var
|
|
1056
|
+
var e_12, _a;
|
|
1104
1057
|
var _this = this;
|
|
1105
1058
|
var cols = new Map();
|
|
1106
1059
|
try {
|
|
@@ -1112,15 +1065,15 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1112
1065
|
});
|
|
1113
1066
|
}
|
|
1114
1067
|
}
|
|
1115
|
-
catch (
|
|
1068
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
1116
1069
|
finally {
|
|
1117
1070
|
try {
|
|
1118
1071
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1119
1072
|
}
|
|
1120
|
-
finally { if (
|
|
1073
|
+
finally { if (e_12) throw e_12.error; }
|
|
1121
1074
|
}
|
|
1122
1075
|
return this.knex.schema.createTable(e.$entityName, function (b) {
|
|
1123
|
-
var
|
|
1076
|
+
var e_13, _a;
|
|
1124
1077
|
try {
|
|
1125
1078
|
for (var _b = tslib_1.__values(entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1126
1079
|
var x = _c.value;
|
|
@@ -1133,12 +1086,12 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1133
1086
|
}
|
|
1134
1087
|
}
|
|
1135
1088
|
}
|
|
1136
|
-
catch (
|
|
1089
|
+
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
1137
1090
|
finally {
|
|
1138
1091
|
try {
|
|
1139
1092
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1140
1093
|
}
|
|
1141
|
-
finally { if (
|
|
1094
|
+
finally { if (e_13) throw e_13.error; }
|
|
1142
1095
|
}
|
|
1143
1096
|
b.primary(entity.idMetadata.fields.map(function (f) { return e.$dbNameOf(f); }));
|
|
1144
1097
|
});
|
|
@@ -1175,8 +1128,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1175
1128
|
};
|
|
1176
1129
|
KnexSchemaBuilder.prototype.verifyAllColumns = function (entity) {
|
|
1177
1130
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1178
|
-
var e, _loop_3, this_2, _a, _b, col,
|
|
1179
|
-
var
|
|
1131
|
+
var e, _loop_3, this_2, _a, _b, col, e_14_1, err_3;
|
|
1132
|
+
var e_14, _c;
|
|
1180
1133
|
return tslib_1.__generator(this, function (_d) {
|
|
1181
1134
|
switch (_d.label) {
|
|
1182
1135
|
case 0: return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_2.dbNamesOf)(entity, function (x) { return x; })];
|
|
@@ -1216,14 +1169,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
|
|
|
1216
1169
|
return [3 /*break*/, 4];
|
|
1217
1170
|
case 7: return [3 /*break*/, 10];
|
|
1218
1171
|
case 8:
|
|
1219
|
-
|
|
1220
|
-
|
|
1172
|
+
e_14_1 = _d.sent();
|
|
1173
|
+
e_14 = { error: e_14_1 };
|
|
1221
1174
|
return [3 /*break*/, 10];
|
|
1222
1175
|
case 9:
|
|
1223
1176
|
try {
|
|
1224
1177
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
1225
1178
|
}
|
|
1226
|
-
finally { if (
|
|
1179
|
+
finally { if (e_14) throw e_14.error; }
|
|
1227
1180
|
return [7 /*endfinally*/];
|
|
1228
1181
|
case 10: return [3 /*break*/, 12];
|
|
1229
1182
|
case 11:
|
|
@@ -1349,7 +1302,7 @@ function knexMaxParametersInOneSqlStatement(knex) {
|
|
|
1349
1302
|
return defaultMaxParametersInOneSqlStatement;
|
|
1350
1303
|
}
|
|
1351
1304
|
function splitByMaxParameters(items, parametersInItem, maxParameters) {
|
|
1352
|
-
var
|
|
1305
|
+
var e_15, _a;
|
|
1353
1306
|
var batches = [];
|
|
1354
1307
|
var batch = [];
|
|
1355
1308
|
var params = 0;
|
|
@@ -1366,40 +1319,41 @@ function splitByMaxParameters(items, parametersInItem, maxParameters) {
|
|
|
1366
1319
|
params += n;
|
|
1367
1320
|
}
|
|
1368
1321
|
}
|
|
1369
|
-
catch (
|
|
1322
|
+
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
1370
1323
|
finally {
|
|
1371
1324
|
try {
|
|
1372
1325
|
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
|
|
1373
1326
|
}
|
|
1374
|
-
finally { if (
|
|
1327
|
+
finally { if (e_15) throw e_15.error; }
|
|
1375
1328
|
}
|
|
1376
1329
|
if (batch.length)
|
|
1377
1330
|
batches.push(batch);
|
|
1378
1331
|
return batches;
|
|
1379
1332
|
}
|
|
1380
|
-
function countKnexInsertBindParameters(entity, e, row) {
|
|
1381
|
-
var
|
|
1333
|
+
function countKnexInsertBindParameters(entity, e, row, storage) {
|
|
1334
|
+
var e_16, _a;
|
|
1382
1335
|
var n = 0;
|
|
1383
1336
|
try {
|
|
1384
1337
|
for (var _b = tslib_1.__values(entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1385
1338
|
var x = _c.value;
|
|
1386
1339
|
if ((0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e))
|
|
1387
1340
|
continue;
|
|
1388
|
-
if (translateValueAndHandleArrayAndHandleArray(x, row[x.key]) !=
|
|
1341
|
+
if (translateValueAndHandleArrayAndHandleArray(x, row[x.key], storage) !=
|
|
1342
|
+
undefined)
|
|
1389
1343
|
n++;
|
|
1390
1344
|
}
|
|
1391
1345
|
}
|
|
1392
|
-
catch (
|
|
1346
|
+
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
1393
1347
|
finally {
|
|
1394
1348
|
try {
|
|
1395
1349
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1396
1350
|
}
|
|
1397
|
-
finally { if (
|
|
1351
|
+
finally { if (e_16) throw e_16.error; }
|
|
1398
1352
|
}
|
|
1399
1353
|
return n;
|
|
1400
1354
|
}
|
|
1401
|
-
function translateValueAndHandleArrayAndHandleArray(field, val) {
|
|
1402
|
-
var result =
|
|
1355
|
+
function translateValueAndHandleArrayAndHandleArray(field, val, storage) {
|
|
1356
|
+
var result = (0, valueConverters_js_1.toDbColumn)(field, val, storage);
|
|
1403
1357
|
if (Array.isArray(result))
|
|
1404
1358
|
return JSON.stringify(result);
|
|
1405
1359
|
return result;
|