remult 0.11.1 → 0.12.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/index.d.ts +1 -1
- package/index.js +2 -1
- package/package.json +1 -1
- package/postgres/postgres-data-provider.d.ts +3 -3
- package/postgres/postgres-data-provider.js +136 -190
- package/remult-knex/index.d.ts +6 -5
- package/remult-knex/index.js +251 -289
- package/remult-mongo.js +150 -217
- package/server/expressBridge.js +1 -1
- package/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +1 -1
- package/src/backend-tests/backend-database-test-setup.backend-spec.js +75 -52
- package/src/data-providers/sql-database.d.ts +0 -2
- package/src/data-providers/sql-database.js +199 -298
- package/src/data-providers/web-sql-data-provider.js +38 -56
- package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +15 -1
- package/src/filter/filter-consumer-bridge-to-sql-request.js +80 -50
- package/src/remult3/RepositoryImplementation.d.ts +4 -0
- package/src/remult3/RepositoryImplementation.js +15 -1
- package/src/shared-tests/db-tests.db-tests.js +63 -2
- package/src/shared-tests/test-custom-id-column.spec.js +4 -3
- package/src/tests/entityForCustomFilter.js +24 -22
- package/valueConverters.js +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SqlDatabase = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var column_1 = require("../column");
|
|
6
6
|
var filter_consumer_bridge_to_sql_request_1 = require("../filter/filter-consumer-bridge-to-sql-request");
|
|
@@ -27,24 +27,17 @@ var SqlDatabase = /** @class */ (function () {
|
|
|
27
27
|
};
|
|
28
28
|
SqlDatabase.prototype.getEntityDataProvider = function (entity) {
|
|
29
29
|
var _this = this;
|
|
30
|
-
return new ActualSQLServerDataProvider(entity, this, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
switch (_e.label) {
|
|
30
|
+
return new ActualSQLServerDataProvider(entity, this, function (dbName) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
31
|
+
return tslib_1.__generator(this, function (_a) {
|
|
32
|
+
switch (_a.label) {
|
|
34
33
|
case 0:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
case 1:
|
|
38
|
-
if (!(_b.apply(_a, [_e.sent()]) < 0)) return [3 /*break*/, 4];
|
|
39
|
-
_d = (_c = this.createdEntities).push;
|
|
40
|
-
return [4 /*yield*/, entity.getDbName()];
|
|
41
|
-
case 2:
|
|
42
|
-
_d.apply(_c, [_e.sent()]);
|
|
34
|
+
if (!(this.createdEntities.indexOf(dbName.entityName) < 0)) return [3 /*break*/, 2];
|
|
35
|
+
this.createdEntities.push(dbName.entityName);
|
|
43
36
|
return [4 /*yield*/, this.sql.entityIsUsedForTheFirstTime(entity)];
|
|
44
|
-
case
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
case
|
|
37
|
+
case 1:
|
|
38
|
+
_a.sent();
|
|
39
|
+
_a.label = 2;
|
|
40
|
+
case 2: return [2 /*return*/];
|
|
48
41
|
}
|
|
49
42
|
});
|
|
50
43
|
}); }, this.sql);
|
|
@@ -154,28 +147,41 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
154
147
|
this.iAmUsed = iAmUsed;
|
|
155
148
|
this.strategy = strategy;
|
|
156
149
|
}
|
|
157
|
-
ActualSQLServerDataProvider.prototype.
|
|
150
|
+
ActualSQLServerDataProvider.prototype.init = function () {
|
|
158
151
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
159
|
-
var
|
|
160
|
-
return tslib_1.__generator(this, function (
|
|
161
|
-
switch (
|
|
162
|
-
case 0: return [4 /*yield*/, this.
|
|
152
|
+
var dbNameProvider;
|
|
153
|
+
return tslib_1.__generator(this, function (_a) {
|
|
154
|
+
switch (_a.label) {
|
|
155
|
+
case 0: return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(this.entity)];
|
|
163
156
|
case 1:
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return [4 /*yield*/, this.entity.getDbName()];
|
|
157
|
+
dbNameProvider = _a.sent();
|
|
158
|
+
return [4 /*yield*/, this.iAmUsed(dbNameProvider)];
|
|
167
159
|
case 2:
|
|
168
|
-
|
|
160
|
+
_a.sent();
|
|
161
|
+
return [2 /*return*/, dbNameProvider];
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
ActualSQLServerDataProvider.prototype.count = function (where) {
|
|
167
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
168
|
+
var e, select, r, wc, _a;
|
|
169
|
+
return tslib_1.__generator(this, function (_b) {
|
|
170
|
+
switch (_b.label) {
|
|
171
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
172
|
+
case 1:
|
|
173
|
+
e = _b.sent();
|
|
174
|
+
select = 'select count(*) count from ' + e.entityName;
|
|
169
175
|
r = this.sql.createCommand();
|
|
170
|
-
if (!where) return [3 /*break*/,
|
|
171
|
-
wc = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r);
|
|
176
|
+
if (!where) return [3 /*break*/, 3];
|
|
177
|
+
wc = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r, e);
|
|
172
178
|
where.__applyToConsumer(wc);
|
|
173
|
-
|
|
179
|
+
_a = select;
|
|
174
180
|
return [4 /*yield*/, wc.resolveWhere()];
|
|
175
|
-
case
|
|
176
|
-
select =
|
|
177
|
-
|
|
178
|
-
case
|
|
181
|
+
case 2:
|
|
182
|
+
select = _a + _b.sent();
|
|
183
|
+
_b.label = 3;
|
|
184
|
+
case 3: return [2 /*return*/, r.execute(select).then(function (r) {
|
|
179
185
|
return +r.rows[0].count;
|
|
180
186
|
})];
|
|
181
187
|
}
|
|
@@ -184,96 +190,76 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
184
190
|
};
|
|
185
191
|
ActualSQLServerDataProvider.prototype.find = function (options) {
|
|
186
192
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
187
|
-
var _a, colKeys, select,
|
|
188
|
-
var
|
|
193
|
+
var e, _a, colKeys, select, r, where, _b, first, segs, _loop_1, _c, _d, s, segs_1, segs_1_1, c, page;
|
|
194
|
+
var e_1, _e, e_2, _f;
|
|
189
195
|
var _this = this;
|
|
190
|
-
return tslib_1.__generator(this, function (
|
|
191
|
-
switch (
|
|
192
|
-
case 0: return [4 /*yield*/, this.
|
|
196
|
+
return tslib_1.__generator(this, function (_g) {
|
|
197
|
+
switch (_g.label) {
|
|
198
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
193
199
|
case 1:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
case 2:
|
|
197
|
-
_a = _k.sent(), colKeys = _a.colKeys, select = _a.select;
|
|
200
|
+
e = _g.sent();
|
|
201
|
+
_a = this.buildSelect(e), colKeys = _a.colKeys, select = _a.select;
|
|
198
202
|
select = 'select ' + select;
|
|
199
|
-
|
|
200
|
-
_c = '\n from ';
|
|
201
|
-
return [4 /*yield*/, this.entity.getDbName()];
|
|
202
|
-
case 3:
|
|
203
|
-
select = _b + (_c + (_k.sent()));
|
|
203
|
+
select += '\n from ' + e.entityName;
|
|
204
204
|
r = this.sql.createCommand();
|
|
205
|
-
if (!options) return [3 /*break*/,
|
|
206
|
-
if (!options.where) return [3 /*break*/,
|
|
207
|
-
where = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r);
|
|
205
|
+
if (!options) return [3 /*break*/, 4];
|
|
206
|
+
if (!options.where) return [3 /*break*/, 3];
|
|
207
|
+
where = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r, e);
|
|
208
208
|
options.where.__applyToConsumer(where);
|
|
209
|
-
|
|
209
|
+
_b = select;
|
|
210
210
|
return [4 /*yield*/, where.resolveWhere()];
|
|
211
|
-
case
|
|
212
|
-
select =
|
|
213
|
-
|
|
214
|
-
case
|
|
211
|
+
case 2:
|
|
212
|
+
select = _b + _g.sent();
|
|
213
|
+
_g.label = 3;
|
|
214
|
+
case 3:
|
|
215
215
|
if (options.limit) {
|
|
216
216
|
options.orderBy = sort_1.Sort.createUniqueSort(this.entity, options.orderBy);
|
|
217
217
|
}
|
|
218
|
-
if (
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
218
|
+
if (options.orderBy) {
|
|
219
|
+
first = true;
|
|
220
|
+
segs = [];
|
|
221
|
+
_loop_1 = function (s) {
|
|
222
|
+
if (s.field instanceof column_1.CompoundIdField) {
|
|
223
|
+
segs.push.apply(segs, tslib_1.__spread(s.field.fields.map(function (c) { return ({ field: c, isDescending: s.isDescending }); })));
|
|
224
|
+
}
|
|
225
|
+
else
|
|
226
|
+
segs.push(s);
|
|
227
|
+
};
|
|
228
|
+
try {
|
|
229
|
+
for (_c = tslib_1.__values(options.orderBy.Segments), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
230
|
+
s = _d.value;
|
|
231
|
+
_loop_1(s);
|
|
232
|
+
}
|
|
224
233
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
_loop_1(s);
|
|
234
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
235
|
+
finally {
|
|
236
|
+
try {
|
|
237
|
+
if (_d && !_d.done && (_e = _c.return)) _e.call(_c);
|
|
238
|
+
}
|
|
239
|
+
finally { if (e_1) throw e_1.error; }
|
|
232
240
|
}
|
|
233
|
-
}
|
|
234
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
235
|
-
finally {
|
|
236
241
|
try {
|
|
237
|
-
|
|
242
|
+
for (segs_1 = tslib_1.__values(segs), segs_1_1 = segs_1.next(); !segs_1_1.done; segs_1_1 = segs_1.next()) {
|
|
243
|
+
c = segs_1_1.value;
|
|
244
|
+
if (first) {
|
|
245
|
+
select += ' Order By ';
|
|
246
|
+
first = false;
|
|
247
|
+
}
|
|
248
|
+
else
|
|
249
|
+
select += ', ';
|
|
250
|
+
select += e.nameOf(c.field);
|
|
251
|
+
if (c.isDescending)
|
|
252
|
+
select += ' desc';
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
256
|
+
finally {
|
|
257
|
+
try {
|
|
258
|
+
if (segs_1_1 && !segs_1_1.done && (_f = segs_1.return)) _f.call(segs_1);
|
|
259
|
+
}
|
|
260
|
+
finally { if (e_2) throw e_2.error; }
|
|
238
261
|
}
|
|
239
|
-
finally { if (e_2) throw e_2.error; }
|
|
240
|
-
}
|
|
241
|
-
_k.label = 6;
|
|
242
|
-
case 6:
|
|
243
|
-
_k.trys.push([6, 11, 12, 13]);
|
|
244
|
-
segs_1 = tslib_1.__values(segs), segs_1_1 = segs_1.next();
|
|
245
|
-
_k.label = 7;
|
|
246
|
-
case 7:
|
|
247
|
-
if (!!segs_1_1.done) return [3 /*break*/, 10];
|
|
248
|
-
c = segs_1_1.value;
|
|
249
|
-
if (first) {
|
|
250
|
-
select += ' Order By ';
|
|
251
|
-
first = false;
|
|
252
|
-
}
|
|
253
|
-
else
|
|
254
|
-
select += ', ';
|
|
255
|
-
_g = select;
|
|
256
|
-
return [4 /*yield*/, c.field.getDbName()];
|
|
257
|
-
case 8:
|
|
258
|
-
select = _g + _k.sent();
|
|
259
|
-
if (c.isDescending)
|
|
260
|
-
select += ' desc';
|
|
261
|
-
_k.label = 9;
|
|
262
|
-
case 9:
|
|
263
|
-
segs_1_1 = segs_1.next();
|
|
264
|
-
return [3 /*break*/, 7];
|
|
265
|
-
case 10: return [3 /*break*/, 13];
|
|
266
|
-
case 11:
|
|
267
|
-
e_1_1 = _k.sent();
|
|
268
|
-
e_1 = { error: e_1_1 };
|
|
269
|
-
return [3 /*break*/, 13];
|
|
270
|
-
case 12:
|
|
271
|
-
try {
|
|
272
|
-
if (segs_1_1 && !segs_1_1.done && (_j = segs_1.return)) _j.call(segs_1);
|
|
273
262
|
}
|
|
274
|
-
finally { if (e_1) throw e_1.error; }
|
|
275
|
-
return [7 /*endfinally*/];
|
|
276
|
-
case 13:
|
|
277
263
|
if (options.limit) {
|
|
278
264
|
page = 1;
|
|
279
265
|
if (options.page)
|
|
@@ -282,8 +268,8 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
282
268
|
page = 1;
|
|
283
269
|
select += ' ' + this.strategy.getLimitSqlSyntax(options.limit, (page - 1) * options.limit);
|
|
284
270
|
}
|
|
285
|
-
|
|
286
|
-
case
|
|
271
|
+
_g.label = 4;
|
|
272
|
+
case 4: return [2 /*return*/, r.execute(select).then(function (r) {
|
|
287
273
|
return r.rows.map(function (y) {
|
|
288
274
|
return _this.buildResultRow(colKeys, y, r);
|
|
289
275
|
});
|
|
@@ -305,120 +291,77 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
305
291
|
}
|
|
306
292
|
return result;
|
|
307
293
|
};
|
|
308
|
-
ActualSQLServerDataProvider.prototype.buildSelect = function () {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
colKeys = [];
|
|
317
|
-
_e.label = 1;
|
|
318
|
-
case 1:
|
|
319
|
-
_e.trys.push([1, 7, 8, 9]);
|
|
320
|
-
_a = tslib_1.__values(this.entity.fields), _b = _a.next();
|
|
321
|
-
_e.label = 2;
|
|
322
|
-
case 2:
|
|
323
|
-
if (!!_b.done) return [3 /*break*/, 6];
|
|
324
|
-
x = _b.value;
|
|
325
|
-
if (!x.isServerExpression) return [3 /*break*/, 3];
|
|
326
|
-
return [3 /*break*/, 5];
|
|
327
|
-
case 3:
|
|
328
|
-
if (colKeys.length > 0)
|
|
329
|
-
select += ', ';
|
|
330
|
-
_c = select;
|
|
331
|
-
return [4 /*yield*/, x.getDbName()];
|
|
332
|
-
case 4:
|
|
333
|
-
select = _c + _e.sent();
|
|
334
|
-
colKeys.push(x);
|
|
335
|
-
_e.label = 5;
|
|
336
|
-
case 5:
|
|
337
|
-
_b = _a.next();
|
|
338
|
-
return [3 /*break*/, 2];
|
|
339
|
-
case 6: return [3 /*break*/, 9];
|
|
340
|
-
case 7:
|
|
341
|
-
e_3_1 = _e.sent();
|
|
342
|
-
e_3 = { error: e_3_1 };
|
|
343
|
-
return [3 /*break*/, 9];
|
|
344
|
-
case 8:
|
|
345
|
-
try {
|
|
346
|
-
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
|
|
347
|
-
}
|
|
348
|
-
finally { if (e_3) throw e_3.error; }
|
|
349
|
-
return [7 /*endfinally*/];
|
|
350
|
-
case 9: return [2 /*return*/, { colKeys: colKeys, select: select }];
|
|
294
|
+
ActualSQLServerDataProvider.prototype.buildSelect = function (e) {
|
|
295
|
+
var e_3, _a;
|
|
296
|
+
var select = '';
|
|
297
|
+
var colKeys = [];
|
|
298
|
+
try {
|
|
299
|
+
for (var _b = tslib_1.__values(this.entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
300
|
+
var x = _c.value;
|
|
301
|
+
if (x.isServerExpression) {
|
|
351
302
|
}
|
|
352
|
-
|
|
353
|
-
|
|
303
|
+
else {
|
|
304
|
+
if (colKeys.length > 0)
|
|
305
|
+
select += ', ';
|
|
306
|
+
select += e.nameOf(x);
|
|
307
|
+
colKeys.push(x);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
312
|
+
finally {
|
|
313
|
+
try {
|
|
314
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
315
|
+
}
|
|
316
|
+
finally { if (e_3) throw e_3.error; }
|
|
317
|
+
}
|
|
318
|
+
return { colKeys: colKeys, select: select };
|
|
354
319
|
};
|
|
355
320
|
ActualSQLServerDataProvider.prototype.update = function (id, data) {
|
|
356
321
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
357
|
-
var r, f, statement,
|
|
358
|
-
var e_4,
|
|
322
|
+
var e, r, f, statement, added, _a, _b, x, v, _c, _d, colKeys, select;
|
|
323
|
+
var e_4, _e;
|
|
359
324
|
var _this = this;
|
|
360
|
-
return tslib_1.__generator(this, function (
|
|
361
|
-
switch (
|
|
362
|
-
case 0: return [4 /*yield*/, this.
|
|
325
|
+
return tslib_1.__generator(this, function (_f) {
|
|
326
|
+
switch (_f.label) {
|
|
327
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
363
328
|
case 1:
|
|
364
|
-
|
|
329
|
+
e = _f.sent();
|
|
365
330
|
r = this.sql.createCommand();
|
|
366
|
-
f = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r);
|
|
331
|
+
f = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r, e);
|
|
367
332
|
filter_interfaces_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
|
|
368
|
-
|
|
369
|
-
return [4 /*yield*/, this.entity.getDbName()];
|
|
370
|
-
case 2:
|
|
371
|
-
statement = _a + (_h.sent()) + ' set ';
|
|
333
|
+
statement = 'update ' + e.entityName + ' set ';
|
|
372
334
|
added = false;
|
|
373
|
-
_h.label = 3;
|
|
374
|
-
case 3:
|
|
375
|
-
_h.trys.push([3, 10, 11, 12]);
|
|
376
|
-
_b = tslib_1.__values(this.entity.fields), _c = _b.next();
|
|
377
|
-
_h.label = 4;
|
|
378
|
-
case 4:
|
|
379
|
-
if (!!_c.done) return [3 /*break*/, 9];
|
|
380
|
-
x = _c.value;
|
|
381
|
-
if (x instanceof column_1.CompoundIdField) {
|
|
382
|
-
}
|
|
383
|
-
return [4 /*yield*/, isDbReadonly(x)];
|
|
384
|
-
case 5:
|
|
385
|
-
if (!_h.sent()) return [3 /*break*/, 6];
|
|
386
|
-
return [3 /*break*/, 8];
|
|
387
|
-
case 6:
|
|
388
|
-
if (!(data[x.key] !== undefined)) return [3 /*break*/, 8];
|
|
389
|
-
v = x.valueConverter.toDb(data[x.key]);
|
|
390
|
-
if (!(v !== undefined)) return [3 /*break*/, 8];
|
|
391
|
-
if (!added)
|
|
392
|
-
added = true;
|
|
393
|
-
else
|
|
394
|
-
statement += ', ';
|
|
395
|
-
_d = statement;
|
|
396
|
-
return [4 /*yield*/, x.getDbName()];
|
|
397
|
-
case 7:
|
|
398
|
-
statement = _d + ((_h.sent()) + ' = ' + r.addParameterAndReturnSqlToken(v));
|
|
399
|
-
_h.label = 8;
|
|
400
|
-
case 8:
|
|
401
|
-
_c = _b.next();
|
|
402
|
-
return [3 /*break*/, 4];
|
|
403
|
-
case 9: return [3 /*break*/, 12];
|
|
404
|
-
case 10:
|
|
405
|
-
e_4_1 = _h.sent();
|
|
406
|
-
e_4 = { error: e_4_1 };
|
|
407
|
-
return [3 /*break*/, 12];
|
|
408
|
-
case 11:
|
|
409
335
|
try {
|
|
410
|
-
|
|
336
|
+
for (_a = tslib_1.__values(this.entity.fields), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
337
|
+
x = _b.value;
|
|
338
|
+
if (x instanceof column_1.CompoundIdField) {
|
|
339
|
+
}
|
|
340
|
+
if (e.isDbReadonly(x)) { }
|
|
341
|
+
else if (data[x.key] !== undefined) {
|
|
342
|
+
v = x.valueConverter.toDb(data[x.key]);
|
|
343
|
+
if (v !== undefined) {
|
|
344
|
+
if (!added)
|
|
345
|
+
added = true;
|
|
346
|
+
else
|
|
347
|
+
statement += ', ';
|
|
348
|
+
statement += e.nameOf(x) + ' = ' + r.addParameterAndReturnSqlToken(v);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
411
352
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
353
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
354
|
+
finally {
|
|
355
|
+
try {
|
|
356
|
+
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
357
|
+
}
|
|
358
|
+
finally { if (e_4) throw e_4.error; }
|
|
359
|
+
}
|
|
360
|
+
_c = statement;
|
|
416
361
|
return [4 /*yield*/, f.resolveWhere()];
|
|
417
|
-
case
|
|
418
|
-
statement =
|
|
419
|
-
|
|
420
|
-
case 14:
|
|
421
|
-
_f = _h.sent(), colKeys = _f.colKeys, select = _f.select;
|
|
362
|
+
case 2:
|
|
363
|
+
statement = _c + _f.sent();
|
|
364
|
+
_d = this.buildSelect(e), colKeys = _d.colKeys, select = _d.select;
|
|
422
365
|
statement += ' returning ' + select;
|
|
423
366
|
return [2 /*return*/, r.execute(statement).then(function (sqlResult) {
|
|
424
367
|
return _this.buildResultRow(colKeys, sqlResult.rows[0], sqlResult);
|
|
@@ -429,23 +372,20 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
429
372
|
};
|
|
430
373
|
ActualSQLServerDataProvider.prototype.delete = function (id) {
|
|
431
374
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
432
|
-
var r, f, statement, _a
|
|
433
|
-
return tslib_1.__generator(this, function (
|
|
434
|
-
switch (
|
|
435
|
-
case 0: return [4 /*yield*/, this.
|
|
375
|
+
var e, r, f, statement, _a;
|
|
376
|
+
return tslib_1.__generator(this, function (_b) {
|
|
377
|
+
switch (_b.label) {
|
|
378
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
436
379
|
case 1:
|
|
437
|
-
|
|
380
|
+
e = _b.sent();
|
|
438
381
|
r = this.sql.createCommand();
|
|
439
|
-
f = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r);
|
|
382
|
+
f = new filter_consumer_bridge_to_sql_request_1.FilterConsumerBridgeToSqlRequest(r, e);
|
|
440
383
|
filter_interfaces_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
case 2:
|
|
444
|
-
statement = _a + (_c.sent());
|
|
445
|
-
_b = statement;
|
|
384
|
+
statement = 'delete from ' + e.entityName;
|
|
385
|
+
_a = statement;
|
|
446
386
|
return [4 /*yield*/, f.resolveWhere()];
|
|
447
|
-
case
|
|
448
|
-
statement =
|
|
387
|
+
case 2:
|
|
388
|
+
statement = _a + _b.sent();
|
|
449
389
|
return [2 /*return*/, r.execute(statement).then(function () { })];
|
|
450
390
|
}
|
|
451
391
|
});
|
|
@@ -453,70 +393,49 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
453
393
|
};
|
|
454
394
|
ActualSQLServerDataProvider.prototype.insert = function (data) {
|
|
455
395
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
456
|
-
var r, cols, vals, added, _a, _b, x, v,
|
|
457
|
-
var e_5,
|
|
396
|
+
var e, r, cols, vals, added, _a, _b, x, v, statement, _c, colKeys, select;
|
|
397
|
+
var e_5, _d;
|
|
458
398
|
var _this = this;
|
|
459
|
-
return tslib_1.__generator(this, function (
|
|
460
|
-
switch (
|
|
461
|
-
case 0: return [4 /*yield*/, this.
|
|
399
|
+
return tslib_1.__generator(this, function (_e) {
|
|
400
|
+
switch (_e.label) {
|
|
401
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
462
402
|
case 1:
|
|
463
|
-
|
|
403
|
+
e = _e.sent();
|
|
464
404
|
r = this.sql.createCommand();
|
|
465
405
|
cols = '';
|
|
466
406
|
vals = '';
|
|
467
407
|
added = false;
|
|
468
|
-
_g.label = 2;
|
|
469
|
-
case 2:
|
|
470
|
-
_g.trys.push([2, 9, 10, 11]);
|
|
471
|
-
_a = tslib_1.__values(this.entity.fields), _b = _a.next();
|
|
472
|
-
_g.label = 3;
|
|
473
|
-
case 3:
|
|
474
|
-
if (!!_b.done) return [3 /*break*/, 8];
|
|
475
|
-
x = _b.value;
|
|
476
|
-
return [4 /*yield*/, isDbReadonly(x)];
|
|
477
|
-
case 4:
|
|
478
|
-
if (!_g.sent()) return [3 /*break*/, 5];
|
|
479
|
-
return [3 /*break*/, 7];
|
|
480
|
-
case 5:
|
|
481
|
-
v = x.valueConverter.toDb(data[x.key]);
|
|
482
|
-
if (!(v != undefined)) return [3 /*break*/, 7];
|
|
483
|
-
if (!added)
|
|
484
|
-
added = true;
|
|
485
|
-
else {
|
|
486
|
-
cols += ', ';
|
|
487
|
-
vals += ', ';
|
|
488
|
-
}
|
|
489
|
-
_c = cols;
|
|
490
|
-
return [4 /*yield*/, x.getDbName()];
|
|
491
|
-
case 6:
|
|
492
|
-
cols = _c + _g.sent();
|
|
493
|
-
vals += r.addParameterAndReturnSqlToken(v);
|
|
494
|
-
_g.label = 7;
|
|
495
|
-
case 7:
|
|
496
|
-
_b = _a.next();
|
|
497
|
-
return [3 /*break*/, 3];
|
|
498
|
-
case 8: return [3 /*break*/, 11];
|
|
499
|
-
case 9:
|
|
500
|
-
e_5_1 = _g.sent();
|
|
501
|
-
e_5 = { error: e_5_1 };
|
|
502
|
-
return [3 /*break*/, 11];
|
|
503
|
-
case 10:
|
|
504
408
|
try {
|
|
505
|
-
|
|
409
|
+
for (_a = tslib_1.__values(this.entity.fields), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
410
|
+
x = _b.value;
|
|
411
|
+
if (e.isDbReadonly(x)) { }
|
|
412
|
+
else {
|
|
413
|
+
v = x.valueConverter.toDb(data[x.key]);
|
|
414
|
+
if (v != undefined) {
|
|
415
|
+
if (!added)
|
|
416
|
+
added = true;
|
|
417
|
+
else {
|
|
418
|
+
cols += ', ';
|
|
419
|
+
vals += ', ';
|
|
420
|
+
}
|
|
421
|
+
cols += e.nameOf(x);
|
|
422
|
+
vals += r.addParameterAndReturnSqlToken(v);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
506
426
|
}
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
_e = _g.sent(), colKeys = _e.colKeys, select = _e.select;
|
|
427
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
428
|
+
finally {
|
|
429
|
+
try {
|
|
430
|
+
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
|
|
431
|
+
}
|
|
432
|
+
finally { if (e_5) throw e_5.error; }
|
|
433
|
+
}
|
|
434
|
+
statement = "insert into " + e.entityName + " (" + cols + ") values (" + vals + ")";
|
|
435
|
+
_c = this.buildSelect(e), colKeys = _c.colKeys, select = _c.select;
|
|
517
436
|
statement += ' returning ' + select;
|
|
518
437
|
return [4 /*yield*/, r.execute(statement).then(function (sql) { return _this.buildResultRow(colKeys, sql.rows[0], sql); })];
|
|
519
|
-
case
|
|
438
|
+
case 2: return [2 /*return*/, _e.sent()];
|
|
520
439
|
}
|
|
521
440
|
});
|
|
522
441
|
});
|
|
@@ -524,21 +443,3 @@ var ActualSQLServerDataProvider = /** @class */ (function () {
|
|
|
524
443
|
ActualSQLServerDataProvider.LogToConsole = false;
|
|
525
444
|
return ActualSQLServerDataProvider;
|
|
526
445
|
}());
|
|
527
|
-
function isDbReadonly(x) {
|
|
528
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
529
|
-
var _a;
|
|
530
|
-
return tslib_1.__generator(this, function (_b) {
|
|
531
|
-
switch (_b.label) {
|
|
532
|
-
case 0:
|
|
533
|
-
_a = x.dbReadOnly || x.isServerExpression;
|
|
534
|
-
if (_a) return [3 /*break*/, 2];
|
|
535
|
-
return [4 /*yield*/, x.getDbName()];
|
|
536
|
-
case 1:
|
|
537
|
-
_a = (_b.sent()) != x.options.dbName;
|
|
538
|
-
_b.label = 2;
|
|
539
|
-
case 2: return [2 /*return*/, (_a)];
|
|
540
|
-
}
|
|
541
|
-
});
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
exports.isDbReadonly = isDbReadonly;
|