@aws-amplify/datastore-storage-adapter 1.2.3-webpack5.5 → 1.2.4-custom-pk.80
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/CHANGELOG.md +157 -0
- package/ExpoSQLiteAdapter/index.d.ts +1 -0
- package/ExpoSQLiteAdapter/index.js +7 -0
- package/SQLiteAdapter/index.d.ts +1 -0
- package/SQLiteAdapter/index.js +7 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.js +2509 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.js.map +1 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js +2 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js.map +1 -0
- package/dist/aws-amplify-datastore-storage-adapter.js +1227 -1158
- package/dist/aws-amplify-datastore-storage-adapter.js.map +1 -1
- package/dist/aws-amplify-datastore-storage-adapter.min.js +1 -1
- package/dist/aws-amplify-datastore-storage-adapter.min.js.map +1 -1
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +10 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +362 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
- package/lib/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
- package/lib/SQLiteAdapter/SQLiteAdapter.js +3 -580
- package/lib/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
- package/lib/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
- package/lib/SQLiteAdapter/SQLiteDatabase.js +46 -42
- package/lib/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
- package/lib/common/CommonSQLiteAdapter.d.ts +23 -0
- package/lib/common/CommonSQLiteAdapter.js +582 -0
- package/lib/common/CommonSQLiteAdapter.js.map +1 -0
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.js +54 -3
- package/lib/common/SQLiteUtils.js.map +1 -0
- package/lib/common/constants.d.ts +1 -0
- package/lib/common/constants.js +4 -0
- package/lib/common/constants.js.map +1 -0
- package/lib/common/types.d.ts +13 -0
- package/lib/common/types.js +3 -0
- package/lib/common/types.js.map +1 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +5 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +360 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.js +3 -580
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.js +46 -42
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
- package/lib-esm/common/CommonSQLiteAdapter.d.ts +23 -0
- package/lib-esm/common/CommonSQLiteAdapter.js +580 -0
- package/lib-esm/common/CommonSQLiteAdapter.js.map +1 -0
- package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
- package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.js +52 -2
- package/lib-esm/common/SQLiteUtils.js.map +1 -0
- package/lib-esm/common/constants.d.ts +1 -0
- package/lib-esm/common/constants.js +2 -0
- package/lib-esm/common/constants.js.map +1 -0
- package/lib-esm/common/types.d.ts +13 -0
- package/lib-esm/common/types.js +1 -0
- package/lib-esm/common/types.js.map +1 -0
- package/package.json +13 -7
- package/src/ExpoSQLiteAdapter/ExpoSQLiteAdapter.ts +8 -0
- package/src/ExpoSQLiteAdapter/ExpoSQLiteDatabase.ts +282 -0
- package/src/SQLiteAdapter/SQLiteAdapter.ts +5 -475
- package/src/SQLiteAdapter/SQLiteDatabase.ts +49 -53
- package/src/common/CommonSQLiteAdapter.ts +479 -0
- package/src/{SQLiteAdapter → common}/SQLiteUtils.ts +66 -5
- package/src/common/constants.ts +1 -0
- package/src/common/types.ts +29 -0
- package/webpack.config.dev.js +2 -0
- package/lib/SQLiteAdapter/SQLiteUtils.js.map +0 -1
- package/lib/SQLiteAdapter/types.d.ts +0 -2
- package/lib/SQLiteAdapter/types.js +0 -28
- package/lib/SQLiteAdapter/types.js.map +0 -1
- package/lib-esm/SQLiteAdapter/SQLiteUtils.js.map +0 -1
- package/lib-esm/SQLiteAdapter/types.d.ts +0 -2
- package/lib-esm/SQLiteAdapter/types.js +0 -25
- package/lib-esm/SQLiteAdapter/types.js.map +0 -1
- package/src/SQLiteAdapter/types.ts +0 -31
|
@@ -100,18 +100,34 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
100
100
|
/*!************************************************!*\
|
|
101
101
|
!*** ./lib-esm/SQLiteAdapter/SQLiteAdapter.js ***!
|
|
102
102
|
\************************************************/
|
|
103
|
-
/*! exports provided:
|
|
103
|
+
/*! exports provided: default */
|
|
104
104
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
105
105
|
|
|
106
106
|
"use strict";
|
|
107
107
|
__webpack_require__.r(__webpack_exports__);
|
|
108
|
-
/* harmony
|
|
109
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
110
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
108
|
+
/* harmony import */ var _common_CommonSQLiteAdapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/CommonSQLiteAdapter */ "./lib-esm/common/CommonSQLiteAdapter.js");
|
|
111
109
|
/* harmony import */ var _SQLiteDatabase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SQLiteDatabase */ "./lib-esm/SQLiteAdapter/SQLiteDatabase.js");
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
var SQLiteAdapter = new _common_CommonSQLiteAdapter__WEBPACK_IMPORTED_MODULE_0__["CommonSQLiteAdapter"](new _SQLiteDatabase__WEBPACK_IMPORTED_MODULE_1__["default"]());
|
|
113
|
+
/* harmony default export */ __webpack_exports__["default"] = (SQLiteAdapter);
|
|
114
|
+
|
|
115
|
+
/***/ }),
|
|
116
|
+
|
|
117
|
+
/***/ "./lib-esm/SQLiteAdapter/SQLiteDatabase.js":
|
|
118
|
+
/*!*************************************************!*\
|
|
119
|
+
!*** ./lib-esm/SQLiteAdapter/SQLiteDatabase.js ***!
|
|
120
|
+
\*************************************************/
|
|
121
|
+
/*! exports provided: default */
|
|
122
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
123
|
+
|
|
124
|
+
"use strict";
|
|
125
|
+
__webpack_require__.r(__webpack_exports__);
|
|
126
|
+
/* harmony import */ var react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-native-sqlite-storage */ "react-native-sqlite-storage");
|
|
127
|
+
/* harmony import */ var react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0__);
|
|
128
|
+
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
129
|
+
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
130
|
+
/* harmony import */ var _common_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/constants */ "./lib-esm/common/constants.js");
|
|
115
131
|
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
116
132
|
function adopt(value) {
|
|
117
133
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -255,32 +271,6 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
|
|
|
255
271
|
}
|
|
256
272
|
};
|
|
257
273
|
|
|
258
|
-
var __asyncValues = undefined && undefined.__asyncValues || function (o) {
|
|
259
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
260
|
-
var m = o[Symbol.asyncIterator],
|
|
261
|
-
i;
|
|
262
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
|
|
263
|
-
return this;
|
|
264
|
-
}, i);
|
|
265
|
-
|
|
266
|
-
function verb(n) {
|
|
267
|
-
i[n] = o[n] && function (v) {
|
|
268
|
-
return new Promise(function (resolve, reject) {
|
|
269
|
-
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
function settle(resolve, reject, d, v) {
|
|
275
|
-
Promise.resolve(v).then(function (v) {
|
|
276
|
-
resolve({
|
|
277
|
-
value: v,
|
|
278
|
-
done: d
|
|
279
|
-
});
|
|
280
|
-
}, reject);
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
|
|
284
274
|
var __read = undefined && undefined.__read || function (o, n) {
|
|
285
275
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
286
276
|
if (!m) return o;
|
|
@@ -328,94 +318,104 @@ var __values = undefined && undefined.__values || function (o) {
|
|
|
328
318
|
|
|
329
319
|
|
|
330
320
|
|
|
321
|
+
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('SQLiteDatabase');
|
|
322
|
+
react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default.a.enablePromise(true);
|
|
323
|
+
|
|
324
|
+
if (_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"].LOG_LEVEL === 'DEBUG') {
|
|
325
|
+
react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default.a.DEBUG(true);
|
|
326
|
+
}
|
|
327
|
+
/*
|
|
328
|
+
|
|
329
|
+
Note:
|
|
330
|
+
I purposely avoided using arrow functions () => {} in this class,
|
|
331
|
+
Because I ran into issues with them in some of the SQLite method callbacks
|
|
332
|
+
|
|
333
|
+
Also, even though the SQLite library is promisified, certain operations
|
|
334
|
+
only work correctly with callbacks. Specifically, any time you need to
|
|
335
|
+
get the result of an `executeSql` command inside of a transaction
|
|
336
|
+
(see the batchQuery method below)
|
|
337
|
+
|
|
338
|
+
*/
|
|
331
339
|
|
|
332
|
-
var traverseModel = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].traverseModel,
|
|
333
|
-
validatePredicate = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].validatePredicate,
|
|
334
|
-
isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["utils"].isModelConstructor;
|
|
335
|
-
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('DataStore');
|
|
336
340
|
|
|
337
|
-
var
|
|
341
|
+
var SQLiteDatabase =
|
|
338
342
|
/** @class */
|
|
339
343
|
function () {
|
|
340
|
-
function
|
|
344
|
+
function SQLiteDatabase() {}
|
|
341
345
|
|
|
342
|
-
|
|
346
|
+
SQLiteDatabase.prototype.init = function () {
|
|
343
347
|
return __awaiter(this, void 0, void 0, function () {
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
var _this = this;
|
|
348
|
+
var _a;
|
|
347
349
|
|
|
348
|
-
return __generator(this, function (
|
|
349
|
-
switch (
|
|
350
|
+
return __generator(this, function (_b) {
|
|
351
|
+
switch (_b.label) {
|
|
350
352
|
case 0:
|
|
351
|
-
if (!!this.
|
|
352
|
-
/*break*/
|
|
353
|
-
, 1];
|
|
354
|
-
this.initPromise = new Promise(function (res, rej) {
|
|
355
|
-
_this.resolve = res;
|
|
356
|
-
_this.reject = rej;
|
|
357
|
-
});
|
|
358
|
-
return [3
|
|
353
|
+
if (!!this.db) return [3
|
|
359
354
|
/*break*/
|
|
360
|
-
,
|
|
361
|
-
|
|
362
|
-
case 1:
|
|
355
|
+
, 2];
|
|
356
|
+
_a = this;
|
|
363
357
|
return [4
|
|
364
358
|
/*yield*/
|
|
365
|
-
,
|
|
359
|
+
, react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default.a.openDatabase({
|
|
360
|
+
name: _common_constants__WEBPACK_IMPORTED_MODULE_2__["DB_NAME"],
|
|
361
|
+
location: 'default'
|
|
362
|
+
})];
|
|
366
363
|
|
|
367
|
-
case
|
|
368
|
-
_a.sent();
|
|
364
|
+
case 1:
|
|
365
|
+
_a.db = _b.sent();
|
|
366
|
+
_b.label = 2;
|
|
369
367
|
|
|
368
|
+
case 2:
|
|
370
369
|
return [2
|
|
371
370
|
/*return*/
|
|
372
371
|
];
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
};
|
|
373
376
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
377
|
+
SQLiteDatabase.prototype.createSchema = function (statements) {
|
|
378
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
379
|
+
return __generator(this, function (_a) {
|
|
380
|
+
switch (_a.label) {
|
|
381
|
+
case 0:
|
|
382
|
+
return [4
|
|
383
|
+
/*yield*/
|
|
384
|
+
, this.executeStatements(statements)];
|
|
380
385
|
|
|
381
|
-
case
|
|
382
|
-
|
|
386
|
+
case 1:
|
|
387
|
+
return [2
|
|
388
|
+
/*return*/
|
|
389
|
+
, _a.sent()];
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
});
|
|
393
|
+
};
|
|
383
394
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
395
|
+
SQLiteDatabase.prototype.clear = function () {
|
|
396
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
397
|
+
return __generator(this, function (_a) {
|
|
398
|
+
switch (_a.label) {
|
|
399
|
+
case 0:
|
|
388
400
|
return [4
|
|
389
401
|
/*yield*/
|
|
390
|
-
, this.
|
|
402
|
+
, this.closeDB()];
|
|
391
403
|
|
|
392
|
-
case
|
|
404
|
+
case 1:
|
|
393
405
|
_a.sent();
|
|
394
406
|
|
|
395
|
-
|
|
407
|
+
logger.debug('Deleting database');
|
|
396
408
|
return [4
|
|
397
409
|
/*yield*/
|
|
398
|
-
,
|
|
410
|
+
, react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default.a.deleteDatabase({
|
|
411
|
+
name: _common_constants__WEBPACK_IMPORTED_MODULE_2__["DB_NAME"],
|
|
412
|
+
location: 'default'
|
|
413
|
+
})];
|
|
399
414
|
|
|
400
|
-
case
|
|
415
|
+
case 2:
|
|
401
416
|
_a.sent();
|
|
402
417
|
|
|
403
|
-
|
|
404
|
-
_a.label = 7;
|
|
405
|
-
|
|
406
|
-
case 7:
|
|
407
|
-
return [3
|
|
408
|
-
/*break*/
|
|
409
|
-
, 9];
|
|
410
|
-
|
|
411
|
-
case 8:
|
|
412
|
-
error_1 = _a.sent();
|
|
413
|
-
this.reject(error_1);
|
|
414
|
-
return [3
|
|
415
|
-
/*break*/
|
|
416
|
-
, 9];
|
|
417
|
-
|
|
418
|
-
case 9:
|
|
418
|
+
logger.debug('Database deleted');
|
|
419
419
|
return [2
|
|
420
420
|
/*return*/
|
|
421
421
|
];
|
|
@@ -424,1402 +424,1440 @@ function () {
|
|
|
424
424
|
});
|
|
425
425
|
};
|
|
426
426
|
|
|
427
|
-
|
|
427
|
+
SQLiteDatabase.prototype.get = function (statement, params) {
|
|
428
428
|
return __awaiter(this, void 0, void 0, function () {
|
|
429
|
+
var results;
|
|
429
430
|
return __generator(this, function (_a) {
|
|
430
431
|
switch (_a.label) {
|
|
431
432
|
case 0:
|
|
432
433
|
return [4
|
|
433
434
|
/*yield*/
|
|
434
|
-
, this.
|
|
435
|
+
, this.getAll(statement, params)];
|
|
435
436
|
|
|
436
437
|
case 1:
|
|
437
|
-
_a.sent();
|
|
438
|
-
|
|
439
|
-
this.db = undefined;
|
|
440
|
-
this.initPromise = undefined;
|
|
438
|
+
results = _a.sent();
|
|
441
439
|
return [2
|
|
442
440
|
/*return*/
|
|
443
|
-
];
|
|
441
|
+
, results[0]];
|
|
444
442
|
}
|
|
445
443
|
});
|
|
446
444
|
});
|
|
447
445
|
};
|
|
448
446
|
|
|
449
|
-
|
|
450
|
-
var e_1, _a;
|
|
451
|
-
|
|
447
|
+
SQLiteDatabase.prototype.getAll = function (statement, params) {
|
|
452
448
|
return __awaiter(this, void 0, void 0, function () {
|
|
453
|
-
var
|
|
449
|
+
var _a, resultSet, result;
|
|
454
450
|
|
|
455
|
-
return __generator(this, function (
|
|
456
|
-
switch (
|
|
451
|
+
return __generator(this, function (_b) {
|
|
452
|
+
switch (_b.label) {
|
|
457
453
|
case 0:
|
|
458
|
-
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
459
|
-
tableName = modelConstructor.name;
|
|
460
|
-
connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[this.namespaceResolver(modelConstructor)], this.modelInstanceCreator, this.getModelConstructorByModelName);
|
|
461
|
-
connectionStoreNames = Object.values(connectedModels).map(function (_a) {
|
|
462
|
-
var modelName = _a.modelName,
|
|
463
|
-
item = _a.item,
|
|
464
|
-
instance = _a.instance;
|
|
465
|
-
return {
|
|
466
|
-
modelName: modelName,
|
|
467
|
-
item: item,
|
|
468
|
-
instance: instance
|
|
469
|
-
};
|
|
470
|
-
});
|
|
471
|
-
_b = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _b[0], params = _b[1];
|
|
472
454
|
return [4
|
|
473
455
|
/*yield*/
|
|
474
|
-
, this.db.
|
|
456
|
+
, this.db.executeSql(statement, params)];
|
|
475
457
|
|
|
476
458
|
case 1:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
logger.error(msg, {
|
|
487
|
-
model: fromDB,
|
|
488
|
-
condition: predicateObjs
|
|
489
|
-
});
|
|
490
|
-
throw new Error(msg);
|
|
491
|
-
}
|
|
492
|
-
}
|
|
459
|
+
_a = __read.apply(void 0, [_b.sent(), 1]), resultSet = _a[0];
|
|
460
|
+
result = resultSet && resultSet.rows && resultSet.rows.length && resultSet.rows.raw && resultSet.rows.raw();
|
|
461
|
+
return [2
|
|
462
|
+
/*return*/
|
|
463
|
+
, result || []];
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
});
|
|
467
|
+
};
|
|
493
468
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
469
|
+
SQLiteDatabase.prototype.save = function (statement, params) {
|
|
470
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
471
|
+
return __generator(this, function (_a) {
|
|
472
|
+
switch (_a.label) {
|
|
473
|
+
case 0:
|
|
474
|
+
return [4
|
|
475
|
+
/*yield*/
|
|
476
|
+
, this.db.executeSql(statement, params)];
|
|
497
477
|
|
|
498
|
-
case
|
|
499
|
-
|
|
478
|
+
case 1:
|
|
479
|
+
_a.sent();
|
|
500
480
|
|
|
501
|
-
|
|
502
|
-
|
|
481
|
+
return [2
|
|
482
|
+
/*return*/
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
});
|
|
486
|
+
});
|
|
487
|
+
};
|
|
503
488
|
|
|
504
|
-
|
|
489
|
+
SQLiteDatabase.prototype.batchQuery = function (queryParameterizedStatements) {
|
|
490
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
491
|
+
var results;
|
|
492
|
+
return __generator(this, function (_a) {
|
|
493
|
+
switch (_a.label) {
|
|
494
|
+
case 0:
|
|
495
|
+
results = [];
|
|
505
496
|
return [4
|
|
506
497
|
/*yield*/
|
|
507
|
-
,
|
|
498
|
+
, this.db.readTransaction(function (tx) {
|
|
499
|
+
var e_1, _a;
|
|
508
500
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
modelName = resItem.modelName, item = resItem.item, instance = resItem.instance;
|
|
515
|
-
id = item.id;
|
|
516
|
-
_c = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, modelName), 2), queryStatement_1 = _c[0], params_1 = _c[1];
|
|
517
|
-
return [4
|
|
518
|
-
/*yield*/
|
|
519
|
-
, this.db.get(queryStatement_1, params_1)];
|
|
501
|
+
try {
|
|
502
|
+
for (var queryParameterizedStatements_1 = __values(queryParameterizedStatements), queryParameterizedStatements_1_1 = queryParameterizedStatements_1.next(); !queryParameterizedStatements_1_1.done; queryParameterizedStatements_1_1 = queryParameterizedStatements_1.next()) {
|
|
503
|
+
var _b = __read(queryParameterizedStatements_1_1.value, 2),
|
|
504
|
+
statement = _b[0],
|
|
505
|
+
params = _b[1];
|
|
520
506
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
507
|
+
tx.executeSql(statement, params, function (_, res) {
|
|
508
|
+
results.push(res.rows.raw()[0]);
|
|
509
|
+
}, logger.warn);
|
|
510
|
+
}
|
|
511
|
+
} catch (e_1_1) {
|
|
512
|
+
e_1 = {
|
|
513
|
+
error: e_1_1
|
|
514
|
+
};
|
|
515
|
+
} finally {
|
|
516
|
+
try {
|
|
517
|
+
if (queryParameterizedStatements_1_1 && !queryParameterizedStatements_1_1.done && (_a = queryParameterizedStatements_1["return"])) _a.call(queryParameterizedStatements_1);
|
|
518
|
+
} finally {
|
|
519
|
+
if (e_1) throw e_1.error;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
})];
|
|
528
523
|
|
|
529
|
-
case
|
|
530
|
-
|
|
531
|
-
/*break*/
|
|
532
|
-
, 3];
|
|
524
|
+
case 1:
|
|
525
|
+
_a.sent();
|
|
533
526
|
|
|
534
|
-
|
|
535
|
-
return
|
|
536
|
-
|
|
537
|
-
|
|
527
|
+
return [2
|
|
528
|
+
/*return*/
|
|
529
|
+
, results];
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
});
|
|
533
|
+
};
|
|
538
534
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
return [
|
|
545
|
-
/*
|
|
546
|
-
,
|
|
535
|
+
SQLiteDatabase.prototype.batchSave = function (saveParameterizedStatements, deleteParameterizedStatements) {
|
|
536
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
537
|
+
return __generator(this, function (_a) {
|
|
538
|
+
switch (_a.label) {
|
|
539
|
+
case 0:
|
|
540
|
+
return [4
|
|
541
|
+
/*yield*/
|
|
542
|
+
, this.db.transaction(function (tx) {
|
|
543
|
+
var e_2, _a;
|
|
547
544
|
|
|
548
|
-
|
|
549
|
-
|
|
545
|
+
try {
|
|
546
|
+
for (var saveParameterizedStatements_1 = __values(saveParameterizedStatements), saveParameterizedStatements_1_1 = saveParameterizedStatements_1.next(); !saveParameterizedStatements_1_1.done; saveParameterizedStatements_1_1 = saveParameterizedStatements_1.next()) {
|
|
547
|
+
var _b = __read(saveParameterizedStatements_1_1.value, 2),
|
|
548
|
+
statement = _b[0],
|
|
549
|
+
params = _b[1];
|
|
550
550
|
|
|
551
|
-
|
|
551
|
+
tx.executeSql(statement, params);
|
|
552
|
+
}
|
|
553
|
+
} catch (e_2_1) {
|
|
554
|
+
e_2 = {
|
|
555
|
+
error: e_2_1
|
|
556
|
+
};
|
|
557
|
+
} finally {
|
|
558
|
+
try {
|
|
559
|
+
if (saveParameterizedStatements_1_1 && !saveParameterizedStatements_1_1.done && (_a = saveParameterizedStatements_1["return"])) _a.call(saveParameterizedStatements_1);
|
|
560
|
+
} finally {
|
|
561
|
+
if (e_2) throw e_2.error;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
})];
|
|
565
|
+
|
|
566
|
+
case 1:
|
|
567
|
+
_a.sent();
|
|
568
|
+
|
|
569
|
+
if (!deleteParameterizedStatements) return [3
|
|
552
570
|
/*break*/
|
|
553
|
-
,
|
|
571
|
+
, 3];
|
|
554
572
|
return [4
|
|
555
573
|
/*yield*/
|
|
556
|
-
,
|
|
574
|
+
, this.db.transaction(function (tx) {
|
|
575
|
+
var e_3, _a;
|
|
557
576
|
|
|
558
|
-
|
|
559
|
-
|
|
577
|
+
try {
|
|
578
|
+
for (var deleteParameterizedStatements_1 = __values(deleteParameterizedStatements), deleteParameterizedStatements_1_1 = deleteParameterizedStatements_1.next(); !deleteParameterizedStatements_1_1.done; deleteParameterizedStatements_1_1 = deleteParameterizedStatements_1.next()) {
|
|
579
|
+
var _b = __read(deleteParameterizedStatements_1_1.value, 2),
|
|
580
|
+
statement = _b[0],
|
|
581
|
+
params = _b[1];
|
|
560
582
|
|
|
561
|
-
|
|
583
|
+
tx.executeSql(statement, params);
|
|
584
|
+
}
|
|
585
|
+
} catch (e_3_1) {
|
|
586
|
+
e_3 = {
|
|
587
|
+
error: e_3_1
|
|
588
|
+
};
|
|
589
|
+
} finally {
|
|
590
|
+
try {
|
|
591
|
+
if (deleteParameterizedStatements_1_1 && !deleteParameterizedStatements_1_1.done && (_a = deleteParameterizedStatements_1["return"])) _a.call(deleteParameterizedStatements_1);
|
|
592
|
+
} finally {
|
|
593
|
+
if (e_3) throw e_3.error;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
})];
|
|
562
597
|
|
|
563
|
-
case
|
|
564
|
-
|
|
565
|
-
/*break*/
|
|
566
|
-
, 13];
|
|
598
|
+
case 2:
|
|
599
|
+
_a.sent();
|
|
567
600
|
|
|
568
|
-
|
|
569
|
-
if (e_1) throw e_1.error;
|
|
570
|
-
return [7
|
|
571
|
-
/*endfinally*/
|
|
572
|
-
];
|
|
601
|
+
_a.label = 3;
|
|
573
602
|
|
|
574
|
-
case
|
|
575
|
-
return [
|
|
576
|
-
/*
|
|
603
|
+
case 3:
|
|
604
|
+
return [2
|
|
605
|
+
/*return*/
|
|
577
606
|
];
|
|
607
|
+
}
|
|
608
|
+
});
|
|
609
|
+
});
|
|
610
|
+
};
|
|
578
611
|
|
|
579
|
-
|
|
612
|
+
SQLiteDatabase.prototype.selectAndDelete = function (queryParameterizedStatement, deleteParameterizedStatement) {
|
|
613
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
614
|
+
var results, _a, queryStatement, queryParams, _b, deleteStatement, deleteParams;
|
|
615
|
+
|
|
616
|
+
return __generator(this, function (_c) {
|
|
617
|
+
switch (_c.label) {
|
|
618
|
+
case 0:
|
|
619
|
+
results = [];
|
|
620
|
+
_a = __read(queryParameterizedStatement, 2), queryStatement = _a[0], queryParams = _a[1];
|
|
621
|
+
_b = __read(deleteParameterizedStatement, 2), deleteStatement = _b[0], deleteParams = _b[1];
|
|
580
622
|
return [4
|
|
581
623
|
/*yield*/
|
|
582
|
-
, this.db.
|
|
624
|
+
, this.db.transaction(function (tx) {
|
|
625
|
+
tx.executeSql(queryStatement, queryParams, function (_, res) {
|
|
626
|
+
results = res.rows.raw();
|
|
627
|
+
}, logger.warn);
|
|
628
|
+
tx.executeSql(deleteStatement, deleteParams, function () {}, logger.warn);
|
|
629
|
+
})];
|
|
583
630
|
|
|
584
|
-
case
|
|
585
|
-
|
|
631
|
+
case 1:
|
|
632
|
+
_c.sent();
|
|
586
633
|
|
|
587
634
|
return [2
|
|
588
635
|
/*return*/
|
|
589
|
-
,
|
|
636
|
+
, results];
|
|
590
637
|
}
|
|
591
638
|
});
|
|
592
639
|
});
|
|
593
640
|
};
|
|
594
641
|
|
|
595
|
-
|
|
596
|
-
var records_1, records_1_1, records_2, records_2_1;
|
|
597
|
-
|
|
598
|
-
var e_2, _a, e_3, _b, e_4, _c;
|
|
599
|
-
|
|
642
|
+
SQLiteDatabase.prototype.executeStatements = function (statements) {
|
|
600
643
|
return __awaiter(this, void 0, void 0, function () {
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
var _this = this;
|
|
604
|
-
|
|
605
|
-
return __generator(this, function (_g) {
|
|
606
|
-
switch (_g.label) {
|
|
644
|
+
return __generator(this, function (_a) {
|
|
645
|
+
switch (_a.label) {
|
|
607
646
|
case 0:
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
var
|
|
612
|
-
return modelName;
|
|
613
|
-
});
|
|
614
|
-
modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
|
|
615
|
-
|
|
616
|
-
if (connectionTableNames.length === 0) {
|
|
617
|
-
return [2
|
|
618
|
-
/*return*/
|
|
619
|
-
, records.map(function (record) {
|
|
620
|
-
return _this.modelInstanceCreator(modelConstructor, record);
|
|
621
|
-
})];
|
|
622
|
-
}
|
|
647
|
+
return [4
|
|
648
|
+
/*yield*/
|
|
649
|
+
, this.db.transaction(function (tx) {
|
|
650
|
+
var e_4, _a;
|
|
623
651
|
|
|
624
|
-
|
|
652
|
+
try {
|
|
653
|
+
for (var statements_1 = __values(statements), statements_1_1 = statements_1.next(); !statements_1_1.done; statements_1_1 = statements_1.next()) {
|
|
654
|
+
var statement = statements_1_1.value;
|
|
655
|
+
tx.executeSql(statement);
|
|
656
|
+
}
|
|
657
|
+
} catch (e_4_1) {
|
|
658
|
+
e_4 = {
|
|
659
|
+
error: e_4_1
|
|
660
|
+
};
|
|
661
|
+
} finally {
|
|
662
|
+
try {
|
|
663
|
+
if (statements_1_1 && !statements_1_1.done && (_a = statements_1["return"])) _a.call(statements_1);
|
|
664
|
+
} finally {
|
|
665
|
+
if (e_4) throw e_4.error;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
})];
|
|
625
669
|
|
|
626
670
|
case 1:
|
|
627
|
-
|
|
671
|
+
_a.sent();
|
|
628
672
|
|
|
629
|
-
|
|
630
|
-
|
|
673
|
+
return [2
|
|
674
|
+
/*return*/
|
|
675
|
+
];
|
|
676
|
+
}
|
|
677
|
+
});
|
|
678
|
+
});
|
|
679
|
+
};
|
|
631
680
|
|
|
632
|
-
|
|
681
|
+
SQLiteDatabase.prototype.closeDB = function () {
|
|
682
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
683
|
+
return __generator(this, function (_a) {
|
|
684
|
+
switch (_a.label) {
|
|
685
|
+
case 0:
|
|
686
|
+
if (!this.db) return [3
|
|
687
|
+
/*break*/
|
|
688
|
+
, 2];
|
|
689
|
+
logger.debug('Closing Database');
|
|
633
690
|
return [4
|
|
634
691
|
/*yield*/
|
|
635
|
-
,
|
|
692
|
+
, this.db.close()];
|
|
636
693
|
|
|
637
|
-
case
|
|
638
|
-
|
|
639
|
-
/*break*/
|
|
640
|
-
, 33];
|
|
641
|
-
relation = relations_1_1.value;
|
|
642
|
-
fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
|
|
643
|
-
modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
|
|
644
|
-
_d = relationType;
|
|
694
|
+
case 1:
|
|
695
|
+
_a.sent();
|
|
645
696
|
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
/*break*/
|
|
650
|
-
, 4];
|
|
697
|
+
logger.debug('Database closed');
|
|
698
|
+
this.db = undefined;
|
|
699
|
+
_a.label = 2;
|
|
651
700
|
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
701
|
+
case 2:
|
|
702
|
+
return [2
|
|
703
|
+
/*return*/
|
|
704
|
+
];
|
|
705
|
+
}
|
|
706
|
+
});
|
|
707
|
+
});
|
|
708
|
+
};
|
|
656
709
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
/*break*/
|
|
660
|
-
, 30];
|
|
661
|
-
}
|
|
710
|
+
return SQLiteDatabase;
|
|
711
|
+
}();
|
|
662
712
|
|
|
663
|
-
|
|
664
|
-
/*break*/
|
|
665
|
-
, 31];
|
|
713
|
+
/* harmony default export */ __webpack_exports__["default"] = (SQLiteDatabase);
|
|
666
714
|
|
|
667
|
-
|
|
668
|
-
_g.trys.push([4, 10, 11, 16]);
|
|
715
|
+
/***/ }),
|
|
669
716
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
, records_1.next()];
|
|
677
|
-
|
|
678
|
-
case 6:
|
|
679
|
-
if (!(records_1_1 = _g.sent(), !records_1_1.done)) return [3
|
|
680
|
-
/*break*/
|
|
681
|
-
, 9];
|
|
682
|
-
recordItem = records_1_1.value;
|
|
683
|
-
getByfield = recordItem[targetName] ? targetName : fieldName;
|
|
684
|
-
if (!recordItem[getByfield]) return [3
|
|
685
|
-
/*break*/
|
|
686
|
-
, 9];
|
|
687
|
-
_e = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
|
|
688
|
-
return [4
|
|
689
|
-
/*yield*/
|
|
690
|
-
, this.db.get(queryStatement, params)];
|
|
691
|
-
|
|
692
|
-
case 7:
|
|
693
|
-
connectionRecord = _g.sent();
|
|
694
|
-
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
695
|
-
_g.label = 8;
|
|
696
|
-
|
|
697
|
-
case 8:
|
|
698
|
-
return [3
|
|
699
|
-
/*break*/
|
|
700
|
-
, 5];
|
|
701
|
-
|
|
702
|
-
case 9:
|
|
703
|
-
return [3
|
|
704
|
-
/*break*/
|
|
705
|
-
, 16];
|
|
717
|
+
/***/ "./lib-esm/common/CommonSQLiteAdapter.js":
|
|
718
|
+
/*!***********************************************!*\
|
|
719
|
+
!*** ./lib-esm/common/CommonSQLiteAdapter.js ***!
|
|
720
|
+
\***********************************************/
|
|
721
|
+
/*! exports provided: CommonSQLiteAdapter */
|
|
722
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
706
723
|
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
724
|
+
"use strict";
|
|
725
|
+
__webpack_require__.r(__webpack_exports__);
|
|
726
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommonSQLiteAdapter", function() { return CommonSQLiteAdapter; });
|
|
727
|
+
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
728
|
+
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
|
|
729
|
+
/* harmony import */ var _common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/SQLiteUtils */ "./lib-esm/common/SQLiteUtils.js");
|
|
730
|
+
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/datastore */ "@aws-amplify/datastore");
|
|
731
|
+
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__);
|
|
732
|
+
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
733
|
+
function adopt(value) {
|
|
734
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
735
|
+
resolve(value);
|
|
736
|
+
});
|
|
737
|
+
}
|
|
715
738
|
|
|
716
|
-
|
|
717
|
-
|
|
739
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
740
|
+
function fulfilled(value) {
|
|
741
|
+
try {
|
|
742
|
+
step(generator.next(value));
|
|
743
|
+
} catch (e) {
|
|
744
|
+
reject(e);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
718
747
|
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
748
|
+
function rejected(value) {
|
|
749
|
+
try {
|
|
750
|
+
step(generator["throw"](value));
|
|
751
|
+
} catch (e) {
|
|
752
|
+
reject(e);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
725
755
|
|
|
726
|
-
|
|
727
|
-
|
|
756
|
+
function step(result) {
|
|
757
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
758
|
+
}
|
|
728
759
|
|
|
729
|
-
|
|
760
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
761
|
+
});
|
|
762
|
+
};
|
|
730
763
|
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
764
|
+
var __generator = undefined && undefined.__generator || function (thisArg, body) {
|
|
765
|
+
var _ = {
|
|
766
|
+
label: 0,
|
|
767
|
+
sent: function sent() {
|
|
768
|
+
if (t[0] & 1) throw t[1];
|
|
769
|
+
return t[1];
|
|
770
|
+
},
|
|
771
|
+
trys: [],
|
|
772
|
+
ops: []
|
|
773
|
+
},
|
|
774
|
+
f,
|
|
775
|
+
y,
|
|
776
|
+
t,
|
|
777
|
+
g;
|
|
778
|
+
return g = {
|
|
779
|
+
next: verb(0),
|
|
780
|
+
"throw": verb(1),
|
|
781
|
+
"return": verb(2)
|
|
782
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
783
|
+
return this;
|
|
784
|
+
}), g;
|
|
735
785
|
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
786
|
+
function verb(n) {
|
|
787
|
+
return function (v) {
|
|
788
|
+
return step([n, v]);
|
|
789
|
+
};
|
|
790
|
+
}
|
|
741
791
|
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
/*endfinally*/
|
|
745
|
-
];
|
|
792
|
+
function step(op) {
|
|
793
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
746
794
|
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
795
|
+
while (_) {
|
|
796
|
+
try {
|
|
797
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
798
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
751
799
|
|
|
752
|
-
|
|
753
|
-
|
|
800
|
+
switch (op[0]) {
|
|
801
|
+
case 0:
|
|
802
|
+
case 1:
|
|
803
|
+
t = op;
|
|
804
|
+
break;
|
|
754
805
|
|
|
755
|
-
|
|
756
|
-
|
|
806
|
+
case 4:
|
|
807
|
+
_.label++;
|
|
808
|
+
return {
|
|
809
|
+
value: op[1],
|
|
810
|
+
done: false
|
|
811
|
+
};
|
|
757
812
|
|
|
758
|
-
case
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
813
|
+
case 5:
|
|
814
|
+
_.label++;
|
|
815
|
+
y = op[1];
|
|
816
|
+
op = [0];
|
|
817
|
+
continue;
|
|
762
818
|
|
|
763
|
-
case
|
|
764
|
-
|
|
765
|
-
/*break*/
|
|
766
|
-
, 22];
|
|
767
|
-
recordItem = records_2_1.value;
|
|
768
|
-
if (!recordItem[targetName]) return [3
|
|
769
|
-
/*break*/
|
|
770
|
-
, 21];
|
|
771
|
-
_f = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
|
|
772
|
-
return [4
|
|
773
|
-
/*yield*/
|
|
774
|
-
, this.db.get(queryStatement, params)];
|
|
819
|
+
case 7:
|
|
820
|
+
op = _.ops.pop();
|
|
775
821
|
|
|
776
|
-
|
|
777
|
-
connectionRecord = _g.sent();
|
|
778
|
-
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
779
|
-
delete recordItem[targetName];
|
|
780
|
-
_g.label = 21;
|
|
822
|
+
_.trys.pop();
|
|
781
823
|
|
|
782
|
-
|
|
783
|
-
return [3
|
|
784
|
-
/*break*/
|
|
785
|
-
, 18];
|
|
824
|
+
continue;
|
|
786
825
|
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
826
|
+
default:
|
|
827
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
828
|
+
_ = 0;
|
|
829
|
+
continue;
|
|
830
|
+
}
|
|
791
831
|
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
};
|
|
797
|
-
return [3
|
|
798
|
-
/*break*/
|
|
799
|
-
, 29];
|
|
832
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
833
|
+
_.label = op[1];
|
|
834
|
+
break;
|
|
835
|
+
}
|
|
800
836
|
|
|
801
|
-
|
|
802
|
-
|
|
837
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
838
|
+
_.label = t[1];
|
|
839
|
+
t = op;
|
|
840
|
+
break;
|
|
841
|
+
}
|
|
803
842
|
|
|
804
|
-
if (
|
|
805
|
-
|
|
806
|
-
, 26];
|
|
807
|
-
return [4
|
|
808
|
-
/*yield*/
|
|
809
|
-
, _c.call(records_2)];
|
|
843
|
+
if (t && _.label < t[2]) {
|
|
844
|
+
_.label = t[2];
|
|
810
845
|
|
|
811
|
-
|
|
812
|
-
_g.sent();
|
|
846
|
+
_.ops.push(op);
|
|
813
847
|
|
|
814
|
-
|
|
848
|
+
break;
|
|
849
|
+
}
|
|
815
850
|
|
|
816
|
-
|
|
817
|
-
return [3
|
|
818
|
-
/*break*/
|
|
819
|
-
, 28];
|
|
851
|
+
if (t[2]) _.ops.pop();
|
|
820
852
|
|
|
821
|
-
|
|
822
|
-
if (e_4) throw e_4.error;
|
|
823
|
-
return [7
|
|
824
|
-
/*endfinally*/
|
|
825
|
-
];
|
|
853
|
+
_.trys.pop();
|
|
826
854
|
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
/*endfinally*/
|
|
830
|
-
];
|
|
855
|
+
continue;
|
|
856
|
+
}
|
|
831
857
|
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
858
|
+
op = body.call(thisArg, _);
|
|
859
|
+
} catch (e) {
|
|
860
|
+
op = [6, e];
|
|
861
|
+
y = 0;
|
|
862
|
+
} finally {
|
|
863
|
+
f = t = 0;
|
|
864
|
+
}
|
|
865
|
+
}
|
|
836
866
|
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
867
|
+
if (op[0] & 5) throw op[1];
|
|
868
|
+
return {
|
|
869
|
+
value: op[0] ? op[1] : void 0,
|
|
870
|
+
done: true
|
|
871
|
+
};
|
|
872
|
+
}
|
|
873
|
+
};
|
|
842
874
|
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
875
|
+
var __asyncValues = undefined && undefined.__asyncValues || function (o) {
|
|
876
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
877
|
+
var m = o[Symbol.asyncIterator],
|
|
878
|
+
i;
|
|
879
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
|
|
880
|
+
return this;
|
|
881
|
+
}, i);
|
|
846
882
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
883
|
+
function verb(n) {
|
|
884
|
+
i[n] = o[n] && function (v) {
|
|
885
|
+
return new Promise(function (resolve, reject) {
|
|
886
|
+
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
887
|
+
});
|
|
888
|
+
};
|
|
889
|
+
}
|
|
851
890
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
891
|
+
function settle(resolve, reject, d, v) {
|
|
892
|
+
Promise.resolve(v).then(function (v) {
|
|
893
|
+
resolve({
|
|
894
|
+
value: v,
|
|
895
|
+
done: d
|
|
896
|
+
});
|
|
897
|
+
}, reject);
|
|
898
|
+
}
|
|
899
|
+
};
|
|
856
900
|
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
, 40];
|
|
901
|
+
var __read = undefined && undefined.__read || function (o, n) {
|
|
902
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
903
|
+
if (!m) return o;
|
|
904
|
+
var i = m.call(o),
|
|
905
|
+
r,
|
|
906
|
+
ar = [],
|
|
907
|
+
e;
|
|
865
908
|
|
|
866
|
-
|
|
867
|
-
|
|
909
|
+
try {
|
|
910
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
911
|
+
ar.push(r.value);
|
|
912
|
+
}
|
|
913
|
+
} catch (error) {
|
|
914
|
+
e = {
|
|
915
|
+
error: error
|
|
916
|
+
};
|
|
917
|
+
} finally {
|
|
918
|
+
try {
|
|
919
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
920
|
+
} finally {
|
|
921
|
+
if (e) throw e.error;
|
|
922
|
+
}
|
|
923
|
+
}
|
|
868
924
|
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
, 37];
|
|
872
|
-
return [4
|
|
873
|
-
/*yield*/
|
|
874
|
-
, _a.call(relations_1)];
|
|
925
|
+
return ar;
|
|
926
|
+
};
|
|
875
927
|
|
|
876
|
-
|
|
877
|
-
|
|
928
|
+
var __values = undefined && undefined.__values || function (o) {
|
|
929
|
+
var s = typeof Symbol === "function" && Symbol.iterator,
|
|
930
|
+
m = s && o[s],
|
|
931
|
+
i = 0;
|
|
932
|
+
if (m) return m.call(o);
|
|
933
|
+
if (o && typeof o.length === "number") return {
|
|
934
|
+
next: function next() {
|
|
935
|
+
if (o && i >= o.length) o = void 0;
|
|
936
|
+
return {
|
|
937
|
+
value: o && o[i++],
|
|
938
|
+
done: !o
|
|
939
|
+
};
|
|
940
|
+
}
|
|
941
|
+
};
|
|
942
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
943
|
+
};
|
|
878
944
|
|
|
879
|
-
_g.label = 37;
|
|
880
945
|
|
|
881
|
-
case 37:
|
|
882
|
-
return [3
|
|
883
|
-
/*break*/
|
|
884
|
-
, 39];
|
|
885
946
|
|
|
886
|
-
case 38:
|
|
887
|
-
if (e_2) throw e_2.error;
|
|
888
|
-
return [7
|
|
889
|
-
/*endfinally*/
|
|
890
|
-
];
|
|
891
947
|
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
948
|
+
var traverseModel = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["utils"].traverseModel,
|
|
949
|
+
validatePredicate = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["utils"].validatePredicate,
|
|
950
|
+
isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["utils"].isModelConstructor;
|
|
951
|
+
var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('DataStore');
|
|
896
952
|
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
}
|
|
904
|
-
});
|
|
905
|
-
});
|
|
906
|
-
};
|
|
953
|
+
var CommonSQLiteAdapter =
|
|
954
|
+
/** @class */
|
|
955
|
+
function () {
|
|
956
|
+
function CommonSQLiteAdapter(db) {
|
|
957
|
+
this.db = db;
|
|
958
|
+
}
|
|
907
959
|
|
|
908
|
-
|
|
960
|
+
CommonSQLiteAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {
|
|
909
961
|
return __awaiter(this, void 0, void 0, function () {
|
|
910
|
-
var
|
|
962
|
+
var statements, error_1;
|
|
911
963
|
|
|
912
964
|
var _this = this;
|
|
913
965
|
|
|
914
966
|
return __generator(this, function (_a) {
|
|
915
967
|
switch (_a.label) {
|
|
916
968
|
case 0:
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
969
|
+
if (!!this.initPromise) return [3
|
|
970
|
+
/*break*/
|
|
971
|
+
, 1];
|
|
972
|
+
this.initPromise = new Promise(function (res, rej) {
|
|
973
|
+
_this.resolve = res;
|
|
974
|
+
_this.reject = rej;
|
|
975
|
+
});
|
|
976
|
+
return [3
|
|
977
|
+
/*break*/
|
|
978
|
+
, 3];
|
|
979
|
+
|
|
980
|
+
case 1:
|
|
924
981
|
return [4
|
|
925
982
|
/*yield*/
|
|
926
|
-
,
|
|
927
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
928
|
-
var record, _a, queryStatement, params;
|
|
983
|
+
, this.initPromise];
|
|
929
984
|
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
case 0:
|
|
933
|
-
if (!queryById) return [3
|
|
934
|
-
/*break*/
|
|
935
|
-
, 2];
|
|
936
|
-
return [4
|
|
937
|
-
/*yield*/
|
|
938
|
-
, this.getById(tableName, queryById)];
|
|
985
|
+
case 2:
|
|
986
|
+
_a.sent();
|
|
939
987
|
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
/*return*/
|
|
944
|
-
, record ? [record] : []];
|
|
988
|
+
return [2
|
|
989
|
+
/*return*/
|
|
990
|
+
];
|
|
945
991
|
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
992
|
+
case 3:
|
|
993
|
+
this.schema = theSchema;
|
|
994
|
+
this.namespaceResolver = namespaceResolver;
|
|
995
|
+
this.modelInstanceCreator = modelInstanceCreator;
|
|
996
|
+
this.getModelConstructorByModelName = getModelConstructorByModelName;
|
|
997
|
+
_a.label = 4;
|
|
951
998
|
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
/*return*/
|
|
955
|
-
, _b.sent()];
|
|
956
|
-
}
|
|
957
|
-
});
|
|
958
|
-
});
|
|
959
|
-
}()];
|
|
999
|
+
case 4:
|
|
1000
|
+
_a.trys.push([4, 7,, 8]);
|
|
960
1001
|
|
|
961
|
-
case 1:
|
|
962
|
-
records = _a.sent();
|
|
963
1002
|
return [4
|
|
964
1003
|
/*yield*/
|
|
965
|
-
, this.
|
|
966
|
-
|
|
967
|
-
case 2:
|
|
968
|
-
return [2
|
|
969
|
-
/*return*/
|
|
970
|
-
, _a.sent()];
|
|
971
|
-
}
|
|
972
|
-
});
|
|
973
|
-
});
|
|
974
|
-
};
|
|
1004
|
+
, this.db.init()];
|
|
975
1005
|
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
var _a, queryStatement, params, record;
|
|
1006
|
+
case 5:
|
|
1007
|
+
_a.sent();
|
|
979
1008
|
|
|
980
|
-
|
|
981
|
-
switch (_b.label) {
|
|
982
|
-
case 0:
|
|
983
|
-
_a = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1009
|
+
statements = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["generateSchemaStatements"])(this.schema);
|
|
984
1010
|
return [4
|
|
985
1011
|
/*yield*/
|
|
986
|
-
, this.db.
|
|
1012
|
+
, this.db.createSchema(statements)];
|
|
987
1013
|
|
|
988
|
-
case
|
|
989
|
-
|
|
1014
|
+
case 6:
|
|
1015
|
+
_a.sent();
|
|
1016
|
+
|
|
1017
|
+
this.resolve();
|
|
1018
|
+
return [3
|
|
1019
|
+
/*break*/
|
|
1020
|
+
, 8];
|
|
1021
|
+
|
|
1022
|
+
case 7:
|
|
1023
|
+
error_1 = _a.sent();
|
|
1024
|
+
this.reject(error_1);
|
|
1025
|
+
return [3
|
|
1026
|
+
/*break*/
|
|
1027
|
+
, 8];
|
|
1028
|
+
|
|
1029
|
+
case 8:
|
|
990
1030
|
return [2
|
|
991
1031
|
/*return*/
|
|
992
|
-
|
|
1032
|
+
];
|
|
993
1033
|
}
|
|
994
1034
|
});
|
|
995
1035
|
});
|
|
996
1036
|
};
|
|
997
1037
|
|
|
998
|
-
|
|
999
|
-
var predicateObjs = predicates.predicates;
|
|
1000
|
-
var idPredicate = predicateObjs.length === 1 && predicateObjs.find(function (p) {
|
|
1001
|
-
return Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["isPredicateObj"])(p) && p.field === 'id' && p.operator === 'eq';
|
|
1002
|
-
});
|
|
1003
|
-
return idPredicate && idPredicate.operand;
|
|
1004
|
-
};
|
|
1005
|
-
|
|
1006
|
-
SQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
1007
|
-
if (firstOrLast === void 0) {
|
|
1008
|
-
firstOrLast = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["QueryOne"].FIRST;
|
|
1009
|
-
}
|
|
1010
|
-
|
|
1038
|
+
CommonSQLiteAdapter.prototype.clear = function () {
|
|
1011
1039
|
return __awaiter(this, void 0, void 0, function () {
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
return __generator(this, function (_b) {
|
|
1015
|
-
switch (_b.label) {
|
|
1040
|
+
return __generator(this, function (_a) {
|
|
1041
|
+
switch (_a.label) {
|
|
1016
1042
|
case 0:
|
|
1017
|
-
tableName = modelConstructor.name;
|
|
1018
|
-
_a = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryOneStatement"])(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1019
1043
|
return [4
|
|
1020
1044
|
/*yield*/
|
|
1021
|
-
, this.db.
|
|
1045
|
+
, this.db.clear()];
|
|
1022
1046
|
|
|
1023
1047
|
case 1:
|
|
1024
|
-
|
|
1025
|
-
|
|
1048
|
+
_a.sent();
|
|
1049
|
+
|
|
1050
|
+
this.initPromise = undefined;
|
|
1026
1051
|
return [2
|
|
1027
1052
|
/*return*/
|
|
1028
|
-
|
|
1053
|
+
];
|
|
1029
1054
|
}
|
|
1030
1055
|
});
|
|
1031
1056
|
});
|
|
1032
|
-
};
|
|
1033
|
-
// TODO: use FKs in relations and have `ON DELETE CASCADE` set
|
|
1034
|
-
// For Has Many and Has One relations to have SQL handle cascades automatically
|
|
1057
|
+
};
|
|
1035
1058
|
|
|
1059
|
+
CommonSQLiteAdapter.prototype.save = function (model, condition) {
|
|
1060
|
+
var e_1, _a;
|
|
1036
1061
|
|
|
1037
|
-
SQLiteAdapter.prototype["delete"] = function (modelOrModelConstructor, condition) {
|
|
1038
1062
|
return __awaiter(this, void 0, void 0, function () {
|
|
1039
|
-
var modelConstructor,
|
|
1063
|
+
var modelConstructor, tableName, connectedModels, connectionStoreNames, _b, queryStatement, params, fromDB, predicates, predicateObjs, type, isValid, msg, result, saveStatements, connectionStoreNames_1, connectionStoreNames_1_1, resItem, modelName, item, instance, id, _c, queryStatement_1, params_1, fromDB_1, opType, saveStatement, e_1_1;
|
|
1040
1064
|
|
|
1041
1065
|
return __generator(this, function (_d) {
|
|
1042
1066
|
switch (_d.label) {
|
|
1043
1067
|
case 0:
|
|
1044
|
-
|
|
1045
|
-
/*break*/
|
|
1046
|
-
, 3];
|
|
1047
|
-
modelConstructor = modelOrModelConstructor;
|
|
1048
|
-
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1068
|
+
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
1049
1069
|
tableName = modelConstructor.name;
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1070
|
+
connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[this.namespaceResolver(modelConstructor)], this.modelInstanceCreator, this.getModelConstructorByModelName);
|
|
1071
|
+
connectionStoreNames = Object.values(connectedModels).map(function (_a) {
|
|
1072
|
+
var modelName = _a.modelName,
|
|
1073
|
+
item = _a.item,
|
|
1074
|
+
instance = _a.instance;
|
|
1075
|
+
return {
|
|
1076
|
+
modelName: modelName,
|
|
1077
|
+
item: item,
|
|
1078
|
+
instance: instance
|
|
1079
|
+
};
|
|
1080
|
+
});
|
|
1081
|
+
_b = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _b[0], params = _b[1];
|
|
1053
1082
|
return [4
|
|
1054
1083
|
/*yield*/
|
|
1055
|
-
, this.db.
|
|
1084
|
+
, this.db.get(queryStatement, params)];
|
|
1056
1085
|
|
|
1057
1086
|
case 1:
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1087
|
+
fromDB = _d.sent();
|
|
1088
|
+
|
|
1089
|
+
if (condition && fromDB) {
|
|
1090
|
+
predicates = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(condition);
|
|
1091
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
1092
|
+
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
1093
|
+
|
|
1094
|
+
if (!isValid) {
|
|
1095
|
+
msg = 'Conditional update failed';
|
|
1096
|
+
logger.error(msg, {
|
|
1097
|
+
model: fromDB,
|
|
1098
|
+
condition: predicateObjs
|
|
1099
|
+
});
|
|
1100
|
+
throw new Error(msg);
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
result = [];
|
|
1105
|
+
saveStatements = new Set();
|
|
1106
|
+
_d.label = 2;
|
|
1062
1107
|
|
|
1063
1108
|
case 2:
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1109
|
+
_d.trys.push([2, 8, 9, 14]);
|
|
1110
|
+
|
|
1111
|
+
connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
1112
|
+
_d.label = 3;
|
|
1068
1113
|
|
|
1069
1114
|
case 3:
|
|
1070
|
-
model = modelOrModelConstructor;
|
|
1071
|
-
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
1072
|
-
tableName = modelConstructor.name;
|
|
1073
|
-
if (!condition) return [3
|
|
1074
|
-
/*break*/
|
|
1075
|
-
, 6];
|
|
1076
|
-
_a = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1077
1115
|
return [4
|
|
1078
1116
|
/*yield*/
|
|
1079
|
-
,
|
|
1117
|
+
, connectionStoreNames_1.next()];
|
|
1080
1118
|
|
|
1081
1119
|
case 4:
|
|
1082
|
-
|
|
1120
|
+
if (!(connectionStoreNames_1_1 = _d.sent(), !connectionStoreNames_1_1.done)) return [3
|
|
1121
|
+
/*break*/
|
|
1122
|
+
, 7];
|
|
1123
|
+
resItem = connectionStoreNames_1_1.value;
|
|
1124
|
+
modelName = resItem.modelName, item = resItem.item, instance = resItem.instance;
|
|
1125
|
+
id = item.id;
|
|
1126
|
+
_c = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(id, modelName), 2), queryStatement_1 = _c[0], params_1 = _c[1];
|
|
1127
|
+
return [4
|
|
1128
|
+
/*yield*/
|
|
1129
|
+
, this.db.get(queryStatement_1, params_1)];
|
|
1083
1130
|
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1131
|
+
case 5:
|
|
1132
|
+
fromDB_1 = _d.sent();
|
|
1133
|
+
opType = fromDB_1 === undefined ? _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].INSERT : _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].UPDATE;
|
|
1134
|
+
saveStatement = fromDB_1 ? Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelUpdateStatement"])(instance, modelName) : Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelInsertStatement"])(instance, modelName);
|
|
1135
|
+
|
|
1136
|
+
if (id === model.id || opType === _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].INSERT) {
|
|
1137
|
+
saveStatements.add(saveStatement);
|
|
1138
|
+
result.push([instance, opType]);
|
|
1092
1139
|
}
|
|
1093
1140
|
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1141
|
+
_d.label = 6;
|
|
1142
|
+
|
|
1143
|
+
case 6:
|
|
1144
|
+
return [3
|
|
1145
|
+
/*break*/
|
|
1146
|
+
, 3];
|
|
1147
|
+
|
|
1148
|
+
case 7:
|
|
1149
|
+
return [3
|
|
1150
|
+
/*break*/
|
|
1151
|
+
, 14];
|
|
1097
1152
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1153
|
+
case 8:
|
|
1154
|
+
e_1_1 = _d.sent();
|
|
1155
|
+
e_1 = {
|
|
1156
|
+
error: e_1_1
|
|
1157
|
+
};
|
|
1158
|
+
return [3
|
|
1159
|
+
/*break*/
|
|
1160
|
+
, 14];
|
|
1106
1161
|
|
|
1107
|
-
|
|
1162
|
+
case 9:
|
|
1163
|
+
_d.trys.push([9,, 12, 13]);
|
|
1164
|
+
|
|
1165
|
+
if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1["return"]))) return [3
|
|
1166
|
+
/*break*/
|
|
1167
|
+
, 11];
|
|
1108
1168
|
return [4
|
|
1109
1169
|
/*yield*/
|
|
1110
|
-
,
|
|
1170
|
+
, _a.call(connectionStoreNames_1)];
|
|
1111
1171
|
|
|
1112
|
-
case
|
|
1172
|
+
case 10:
|
|
1113
1173
|
_d.sent();
|
|
1114
1174
|
|
|
1115
|
-
|
|
1116
|
-
/*return*/
|
|
1117
|
-
, [[model], [model]]];
|
|
1175
|
+
_d.label = 11;
|
|
1118
1176
|
|
|
1119
|
-
case
|
|
1120
|
-
|
|
1177
|
+
case 11:
|
|
1178
|
+
return [3
|
|
1179
|
+
/*break*/
|
|
1180
|
+
, 13];
|
|
1181
|
+
|
|
1182
|
+
case 12:
|
|
1183
|
+
if (e_1) throw e_1.error;
|
|
1184
|
+
return [7
|
|
1185
|
+
/*endfinally*/
|
|
1186
|
+
];
|
|
1187
|
+
|
|
1188
|
+
case 13:
|
|
1189
|
+
return [7
|
|
1190
|
+
/*endfinally*/
|
|
1191
|
+
];
|
|
1192
|
+
|
|
1193
|
+
case 14:
|
|
1121
1194
|
return [4
|
|
1122
1195
|
/*yield*/
|
|
1123
|
-
, this.db.
|
|
1196
|
+
, this.db.batchSave(saveStatements)];
|
|
1124
1197
|
|
|
1125
|
-
case
|
|
1198
|
+
case 15:
|
|
1126
1199
|
_d.sent();
|
|
1127
1200
|
|
|
1128
1201
|
return [2
|
|
1129
1202
|
/*return*/
|
|
1130
|
-
,
|
|
1203
|
+
, result];
|
|
1131
1204
|
}
|
|
1132
1205
|
});
|
|
1133
1206
|
});
|
|
1134
1207
|
};
|
|
1135
1208
|
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
|
|
1139
|
-
|
|
1140
|
-
var e_5, _a;
|
|
1141
|
-
|
|
1142
|
-
return __generator(this, function (_b) {
|
|
1143
|
-
switch (_b.label) {
|
|
1144
|
-
case 0:
|
|
1145
|
-
tableName = modelConstructor.name;
|
|
1146
|
-
result = [];
|
|
1147
|
-
itemsToSave = [];
|
|
1148
|
-
queryStatements = new Set();
|
|
1149
|
-
deleteStatements = new Set();
|
|
1150
|
-
saveStatements = new Set();
|
|
1151
|
-
|
|
1152
|
-
_loop_1 = function _loop_1(item) {
|
|
1153
|
-
var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
|
|
1154
|
-
var id = item.id,
|
|
1155
|
-
_deleted = item._deleted;
|
|
1156
|
-
var instance = connectedModels.find(function (_a) {
|
|
1157
|
-
var instance = _a.instance;
|
|
1158
|
-
return instance.id === id;
|
|
1159
|
-
}).instance;
|
|
1209
|
+
CommonSQLiteAdapter.prototype.load = function (namespaceName, srcModelName, records) {
|
|
1210
|
+
var records_1, records_1_1, records_2, records_2_1;
|
|
1160
1211
|
|
|
1161
|
-
|
|
1162
|
-
// create the delete statements right away
|
|
1163
|
-
var deleteStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByIdStatement"])(instance.id, tableName);
|
|
1164
|
-
deleteStatements.add(deleteStatement);
|
|
1165
|
-
result.push([item, _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].DELETE]);
|
|
1166
|
-
} else {
|
|
1167
|
-
// query statements for the saves at first
|
|
1168
|
-
var queryStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, tableName);
|
|
1169
|
-
queryStatements.add(queryStatement); // combination of insert and update items
|
|
1212
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
1170
1213
|
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
};
|
|
1214
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1215
|
+
var namespace, relations, connectionTableNames, modelConstructor, relations_1, relations_1_1, relation, fieldName, tableName, targetName, relationType, modelConstructor_1, _d, recordItem, getByfield, _e, queryStatement, params, connectionRecord, e_3_1, recordItem, _f, queryStatement, params, connectionRecord, e_4_1, _, e_2_1;
|
|
1174
1216
|
|
|
1175
|
-
|
|
1217
|
+
var _this = this;
|
|
1176
1218
|
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1219
|
+
return __generator(this, function (_g) {
|
|
1220
|
+
switch (_g.label) {
|
|
1221
|
+
case 0:
|
|
1222
|
+
namespace = this.schema.namespaces[namespaceName];
|
|
1223
|
+
relations = namespace.relationships[srcModelName].relationTypes;
|
|
1224
|
+
connectionTableNames = relations.map(function (_a) {
|
|
1225
|
+
var modelName = _a.modelName;
|
|
1226
|
+
return modelName;
|
|
1227
|
+
});
|
|
1228
|
+
modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
|
|
1180
1229
|
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
};
|
|
1187
|
-
} finally {
|
|
1188
|
-
try {
|
|
1189
|
-
if (items_1_1 && !items_1_1.done && (_a = items_1["return"])) _a.call(items_1);
|
|
1190
|
-
} finally {
|
|
1191
|
-
if (e_5) throw e_5.error;
|
|
1192
|
-
}
|
|
1230
|
+
if (connectionTableNames.length === 0) {
|
|
1231
|
+
return [2
|
|
1232
|
+
/*return*/
|
|
1233
|
+
, records.map(function (record) {
|
|
1234
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
1235
|
+
})];
|
|
1193
1236
|
}
|
|
1194
1237
|
|
|
1195
|
-
|
|
1196
|
-
/*yield*/
|
|
1197
|
-
, this.db.batchQuery(queryStatements)];
|
|
1238
|
+
_g.label = 1;
|
|
1198
1239
|
|
|
1199
1240
|
case 1:
|
|
1200
|
-
|
|
1201
|
-
queryResponses.forEach(function (response, idx) {
|
|
1202
|
-
if (response === undefined) {
|
|
1203
|
-
var insertStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelInsertStatement"])(itemsToSave[idx], tableName);
|
|
1204
|
-
saveStatements.add(insertStatement);
|
|
1205
|
-
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].INSERT]);
|
|
1206
|
-
} else {
|
|
1207
|
-
var updateStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelUpdateStatement"])(itemsToSave[idx], tableName);
|
|
1208
|
-
saveStatements.add(updateStatement);
|
|
1209
|
-
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].UPDATE]);
|
|
1210
|
-
}
|
|
1211
|
-
}); // perform all of the insert/update/delete operations in a single transaction
|
|
1241
|
+
_g.trys.push([1, 34, 35, 40]);
|
|
1212
1242
|
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
, this.db.batchSave(saveStatements, deleteStatements)];
|
|
1243
|
+
relations_1 = __asyncValues(relations);
|
|
1244
|
+
_g.label = 2;
|
|
1216
1245
|
|
|
1217
1246
|
case 2:
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
return [2
|
|
1222
|
-
/*return*/
|
|
1223
|
-
, result];
|
|
1224
|
-
}
|
|
1225
|
-
});
|
|
1226
|
-
});
|
|
1227
|
-
};
|
|
1228
|
-
|
|
1229
|
-
return SQLiteAdapter;
|
|
1230
|
-
}();
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
/* harmony default export */ __webpack_exports__["default"] = (new SQLiteAdapter());
|
|
1234
|
-
|
|
1235
|
-
/***/ }),
|
|
1247
|
+
return [4
|
|
1248
|
+
/*yield*/
|
|
1249
|
+
, relations_1.next()];
|
|
1236
1250
|
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1251
|
+
case 3:
|
|
1252
|
+
if (!(relations_1_1 = _g.sent(), !relations_1_1.done)) return [3
|
|
1253
|
+
/*break*/
|
|
1254
|
+
, 33];
|
|
1255
|
+
relation = relations_1_1.value;
|
|
1256
|
+
fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
|
|
1257
|
+
modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
|
|
1258
|
+
_d = relationType;
|
|
1243
1259
|
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
/*
|
|
1248
|
-
|
|
1249
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
1250
|
-
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
1251
|
-
function adopt(value) {
|
|
1252
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
1253
|
-
resolve(value);
|
|
1254
|
-
});
|
|
1255
|
-
}
|
|
1260
|
+
switch (_d) {
|
|
1261
|
+
case 'HAS_ONE':
|
|
1262
|
+
return [3
|
|
1263
|
+
/*break*/
|
|
1264
|
+
, 4];
|
|
1256
1265
|
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
} catch (e) {
|
|
1262
|
-
reject(e);
|
|
1263
|
-
}
|
|
1264
|
-
}
|
|
1266
|
+
case 'BELONGS_TO':
|
|
1267
|
+
return [3
|
|
1268
|
+
/*break*/
|
|
1269
|
+
, 17];
|
|
1265
1270
|
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1271
|
+
case 'HAS_MANY':
|
|
1272
|
+
return [3
|
|
1273
|
+
/*break*/
|
|
1274
|
+
, 30];
|
|
1275
|
+
}
|
|
1273
1276
|
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
+
return [3
|
|
1278
|
+
/*break*/
|
|
1279
|
+
, 31];
|
|
1277
1280
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
};
|
|
1281
|
+
case 4:
|
|
1282
|
+
_g.trys.push([4, 10, 11, 16]);
|
|
1281
1283
|
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
label: 0,
|
|
1285
|
-
sent: function sent() {
|
|
1286
|
-
if (t[0] & 1) throw t[1];
|
|
1287
|
-
return t[1];
|
|
1288
|
-
},
|
|
1289
|
-
trys: [],
|
|
1290
|
-
ops: []
|
|
1291
|
-
},
|
|
1292
|
-
f,
|
|
1293
|
-
y,
|
|
1294
|
-
t,
|
|
1295
|
-
g;
|
|
1296
|
-
return g = {
|
|
1297
|
-
next: verb(0),
|
|
1298
|
-
"throw": verb(1),
|
|
1299
|
-
"return": verb(2)
|
|
1300
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
1301
|
-
return this;
|
|
1302
|
-
}), g;
|
|
1284
|
+
records_1 = __asyncValues(records);
|
|
1285
|
+
_g.label = 5;
|
|
1303
1286
|
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
}
|
|
1287
|
+
case 5:
|
|
1288
|
+
return [4
|
|
1289
|
+
/*yield*/
|
|
1290
|
+
, records_1.next()];
|
|
1309
1291
|
|
|
1310
|
-
|
|
1311
|
-
|
|
1292
|
+
case 6:
|
|
1293
|
+
if (!(records_1_1 = _g.sent(), !records_1_1.done)) return [3
|
|
1294
|
+
/*break*/
|
|
1295
|
+
, 9];
|
|
1296
|
+
recordItem = records_1_1.value;
|
|
1297
|
+
getByfield = recordItem[targetName] ? targetName : fieldName;
|
|
1298
|
+
if (!recordItem[getByfield]) return [3
|
|
1299
|
+
/*break*/
|
|
1300
|
+
, 9];
|
|
1301
|
+
_e = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
|
|
1302
|
+
return [4
|
|
1303
|
+
/*yield*/
|
|
1304
|
+
, this.db.get(queryStatement, params)];
|
|
1312
1305
|
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1306
|
+
case 7:
|
|
1307
|
+
connectionRecord = _g.sent();
|
|
1308
|
+
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
1309
|
+
_g.label = 8;
|
|
1317
1310
|
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
break;
|
|
1311
|
+
case 8:
|
|
1312
|
+
return [3
|
|
1313
|
+
/*break*/
|
|
1314
|
+
, 5];
|
|
1323
1315
|
|
|
1324
|
-
case
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1316
|
+
case 9:
|
|
1317
|
+
return [3
|
|
1318
|
+
/*break*/
|
|
1319
|
+
, 16];
|
|
1320
|
+
|
|
1321
|
+
case 10:
|
|
1322
|
+
e_3_1 = _g.sent();
|
|
1323
|
+
e_3 = {
|
|
1324
|
+
error: e_3_1
|
|
1329
1325
|
};
|
|
1326
|
+
return [3
|
|
1327
|
+
/*break*/
|
|
1328
|
+
, 16];
|
|
1330
1329
|
|
|
1331
|
-
case
|
|
1332
|
-
|
|
1333
|
-
y = op[1];
|
|
1334
|
-
op = [0];
|
|
1335
|
-
continue;
|
|
1330
|
+
case 11:
|
|
1331
|
+
_g.trys.push([11,, 14, 15]);
|
|
1336
1332
|
|
|
1337
|
-
|
|
1338
|
-
|
|
1333
|
+
if (!(records_1_1 && !records_1_1.done && (_b = records_1["return"]))) return [3
|
|
1334
|
+
/*break*/
|
|
1335
|
+
, 13];
|
|
1336
|
+
return [4
|
|
1337
|
+
/*yield*/
|
|
1338
|
+
, _b.call(records_1)];
|
|
1339
1339
|
|
|
1340
|
-
|
|
1340
|
+
case 12:
|
|
1341
|
+
_g.sent();
|
|
1341
1342
|
|
|
1342
|
-
|
|
1343
|
+
_g.label = 13;
|
|
1343
1344
|
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
}
|
|
1345
|
+
case 13:
|
|
1346
|
+
return [3
|
|
1347
|
+
/*break*/
|
|
1348
|
+
, 15];
|
|
1349
1349
|
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1350
|
+
case 14:
|
|
1351
|
+
if (e_3) throw e_3.error;
|
|
1352
|
+
return [7
|
|
1353
|
+
/*endfinally*/
|
|
1354
|
+
];
|
|
1354
1355
|
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
}
|
|
1356
|
+
case 15:
|
|
1357
|
+
return [7
|
|
1358
|
+
/*endfinally*/
|
|
1359
|
+
];
|
|
1360
1360
|
|
|
1361
|
-
|
|
1362
|
-
|
|
1361
|
+
case 16:
|
|
1362
|
+
return [3
|
|
1363
|
+
/*break*/
|
|
1364
|
+
, 32];
|
|
1363
1365
|
|
|
1364
|
-
|
|
1366
|
+
case 17:
|
|
1367
|
+
_g.trys.push([17, 23, 24, 29]);
|
|
1365
1368
|
|
|
1366
|
-
|
|
1367
|
-
|
|
1369
|
+
records_2 = __asyncValues(records);
|
|
1370
|
+
_g.label = 18;
|
|
1368
1371
|
|
|
1369
|
-
|
|
1372
|
+
case 18:
|
|
1373
|
+
return [4
|
|
1374
|
+
/*yield*/
|
|
1375
|
+
, records_2.next()];
|
|
1370
1376
|
|
|
1371
|
-
|
|
1377
|
+
case 19:
|
|
1378
|
+
if (!(records_2_1 = _g.sent(), !records_2_1.done)) return [3
|
|
1379
|
+
/*break*/
|
|
1380
|
+
, 22];
|
|
1381
|
+
recordItem = records_2_1.value;
|
|
1382
|
+
if (!recordItem[targetName]) return [3
|
|
1383
|
+
/*break*/
|
|
1384
|
+
, 21];
|
|
1385
|
+
_f = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
|
|
1386
|
+
return [4
|
|
1387
|
+
/*yield*/
|
|
1388
|
+
, this.db.get(queryStatement, params)];
|
|
1372
1389
|
|
|
1373
|
-
|
|
1374
|
-
|
|
1390
|
+
case 20:
|
|
1391
|
+
connectionRecord = _g.sent();
|
|
1392
|
+
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
1393
|
+
delete recordItem[targetName];
|
|
1394
|
+
_g.label = 21;
|
|
1375
1395
|
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
} finally {
|
|
1381
|
-
f = t = 0;
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1396
|
+
case 21:
|
|
1397
|
+
return [3
|
|
1398
|
+
/*break*/
|
|
1399
|
+
, 18];
|
|
1384
1400
|
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
};
|
|
1390
|
-
}
|
|
1391
|
-
};
|
|
1401
|
+
case 22:
|
|
1402
|
+
return [3
|
|
1403
|
+
/*break*/
|
|
1404
|
+
, 29];
|
|
1392
1405
|
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1406
|
+
case 23:
|
|
1407
|
+
e_4_1 = _g.sent();
|
|
1408
|
+
e_4 = {
|
|
1409
|
+
error: e_4_1
|
|
1410
|
+
};
|
|
1411
|
+
return [3
|
|
1412
|
+
/*break*/
|
|
1413
|
+
, 29];
|
|
1400
1414
|
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
ar.push(r.value);
|
|
1404
|
-
}
|
|
1405
|
-
} catch (error) {
|
|
1406
|
-
e = {
|
|
1407
|
-
error: error
|
|
1408
|
-
};
|
|
1409
|
-
} finally {
|
|
1410
|
-
try {
|
|
1411
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
1412
|
-
} finally {
|
|
1413
|
-
if (e) throw e.error;
|
|
1414
|
-
}
|
|
1415
|
-
}
|
|
1415
|
+
case 24:
|
|
1416
|
+
_g.trys.push([24,, 27, 28]);
|
|
1416
1417
|
|
|
1417
|
-
|
|
1418
|
-
|
|
1418
|
+
if (!(records_2_1 && !records_2_1.done && (_c = records_2["return"]))) return [3
|
|
1419
|
+
/*break*/
|
|
1420
|
+
, 26];
|
|
1421
|
+
return [4
|
|
1422
|
+
/*yield*/
|
|
1423
|
+
, _c.call(records_2)];
|
|
1419
1424
|
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
m = s && o[s],
|
|
1423
|
-
i = 0;
|
|
1424
|
-
if (m) return m.call(o);
|
|
1425
|
-
if (o && typeof o.length === "number") return {
|
|
1426
|
-
next: function next() {
|
|
1427
|
-
if (o && i >= o.length) o = void 0;
|
|
1428
|
-
return {
|
|
1429
|
-
value: o && o[i++],
|
|
1430
|
-
done: !o
|
|
1431
|
-
};
|
|
1432
|
-
}
|
|
1433
|
-
};
|
|
1434
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
1435
|
-
};
|
|
1425
|
+
case 25:
|
|
1426
|
+
_g.sent();
|
|
1436
1427
|
|
|
1428
|
+
_g.label = 26;
|
|
1437
1429
|
|
|
1430
|
+
case 26:
|
|
1431
|
+
return [3
|
|
1432
|
+
/*break*/
|
|
1433
|
+
, 28];
|
|
1438
1434
|
|
|
1439
|
-
|
|
1440
|
-
|
|
1435
|
+
case 27:
|
|
1436
|
+
if (e_4) throw e_4.error;
|
|
1437
|
+
return [7
|
|
1438
|
+
/*endfinally*/
|
|
1439
|
+
];
|
|
1441
1440
|
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1441
|
+
case 28:
|
|
1442
|
+
return [7
|
|
1443
|
+
/*endfinally*/
|
|
1444
|
+
];
|
|
1445
1445
|
|
|
1446
|
-
|
|
1447
|
-
|
|
1446
|
+
case 29:
|
|
1447
|
+
return [3
|
|
1448
|
+
/*break*/
|
|
1449
|
+
, 32];
|
|
1448
1450
|
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1451
|
+
case 30:
|
|
1452
|
+
// TODO: Lazy loading
|
|
1453
|
+
return [3
|
|
1454
|
+
/*break*/
|
|
1455
|
+
, 32];
|
|
1452
1456
|
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1457
|
+
case 31:
|
|
1458
|
+
_ = relationType;
|
|
1459
|
+
throw new Error("invalid relation type " + relationType);
|
|
1456
1460
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
+
case 32:
|
|
1462
|
+
return [3
|
|
1463
|
+
/*break*/
|
|
1464
|
+
, 2];
|
|
1461
1465
|
|
|
1462
|
-
|
|
1466
|
+
case 33:
|
|
1467
|
+
return [3
|
|
1468
|
+
/*break*/
|
|
1469
|
+
, 40];
|
|
1463
1470
|
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1471
|
+
case 34:
|
|
1472
|
+
e_2_1 = _g.sent();
|
|
1473
|
+
e_2 = {
|
|
1474
|
+
error: e_2_1
|
|
1475
|
+
};
|
|
1476
|
+
return [3
|
|
1477
|
+
/*break*/
|
|
1478
|
+
, 40];
|
|
1468
1479
|
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
var _a;
|
|
1480
|
+
case 35:
|
|
1481
|
+
_g.trys.push([35,, 38, 39]);
|
|
1472
1482
|
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
_a = this;
|
|
1483
|
+
if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1["return"]))) return [3
|
|
1484
|
+
/*break*/
|
|
1485
|
+
, 37];
|
|
1477
1486
|
return [4
|
|
1478
1487
|
/*yield*/
|
|
1479
|
-
,
|
|
1488
|
+
, _a.call(relations_1)];
|
|
1480
1489
|
|
|
1481
|
-
case
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1490
|
+
case 36:
|
|
1491
|
+
_g.sent();
|
|
1492
|
+
|
|
1493
|
+
_g.label = 37;
|
|
1494
|
+
|
|
1495
|
+
case 37:
|
|
1496
|
+
return [3
|
|
1497
|
+
/*break*/
|
|
1498
|
+
, 39];
|
|
1499
|
+
|
|
1500
|
+
case 38:
|
|
1501
|
+
if (e_2) throw e_2.error;
|
|
1502
|
+
return [7
|
|
1503
|
+
/*endfinally*/
|
|
1485
1504
|
];
|
|
1486
|
-
}
|
|
1487
|
-
});
|
|
1488
|
-
});
|
|
1489
|
-
};
|
|
1490
1505
|
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
case 0:
|
|
1496
|
-
return [4
|
|
1497
|
-
/*yield*/
|
|
1498
|
-
, this.executeStatements(statements)];
|
|
1506
|
+
case 39:
|
|
1507
|
+
return [7
|
|
1508
|
+
/*endfinally*/
|
|
1509
|
+
];
|
|
1499
1510
|
|
|
1500
|
-
case
|
|
1511
|
+
case 40:
|
|
1501
1512
|
return [2
|
|
1502
1513
|
/*return*/
|
|
1503
|
-
,
|
|
1514
|
+
, records.map(function (record) {
|
|
1515
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
1516
|
+
})];
|
|
1504
1517
|
}
|
|
1505
1518
|
});
|
|
1506
1519
|
});
|
|
1507
1520
|
};
|
|
1508
1521
|
|
|
1509
|
-
|
|
1522
|
+
CommonSQLiteAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
|
|
1510
1523
|
return __awaiter(this, void 0, void 0, function () {
|
|
1524
|
+
var tableName, namespaceName, predicates, sortPredicates, limit, page, queryById, records;
|
|
1525
|
+
|
|
1526
|
+
var _this = this;
|
|
1527
|
+
|
|
1511
1528
|
return __generator(this, function (_a) {
|
|
1512
1529
|
switch (_a.label) {
|
|
1513
1530
|
case 0:
|
|
1531
|
+
tableName = modelConstructor.name;
|
|
1532
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1533
|
+
predicates = predicate && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(predicate);
|
|
1534
|
+
sortPredicates = pagination && pagination.sort && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelSortPredicateCreator"].getPredicates(pagination.sort);
|
|
1535
|
+
limit = pagination && pagination.limit;
|
|
1536
|
+
page = limit && pagination.page;
|
|
1537
|
+
queryById = predicates && this.idFromPredicate(predicates);
|
|
1514
1538
|
return [4
|
|
1515
1539
|
/*yield*/
|
|
1516
|
-
,
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
_a.sent();
|
|
1540
|
+
, function () {
|
|
1541
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
1542
|
+
var record, _a, queryStatement, params;
|
|
1520
1543
|
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1544
|
+
return __generator(this, function (_b) {
|
|
1545
|
+
switch (_b.label) {
|
|
1546
|
+
case 0:
|
|
1547
|
+
if (!queryById) return [3
|
|
1548
|
+
/*break*/
|
|
1549
|
+
, 2];
|
|
1550
|
+
return [4
|
|
1551
|
+
/*yield*/
|
|
1552
|
+
, this.getById(tableName, queryById)];
|
|
1525
1553
|
|
|
1526
|
-
|
|
1527
|
-
|
|
1554
|
+
case 1:
|
|
1555
|
+
record = _b.sent();
|
|
1556
|
+
return [2
|
|
1557
|
+
/*return*/
|
|
1558
|
+
, record ? [record] : []];
|
|
1528
1559
|
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
});
|
|
1535
|
-
});
|
|
1536
|
-
};
|
|
1560
|
+
case 2:
|
|
1561
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryAllStatement"])(tableName, predicates, sortPredicates, limit, page), 2), queryStatement = _a[0], params = _a[1];
|
|
1562
|
+
return [4
|
|
1563
|
+
/*yield*/
|
|
1564
|
+
, this.db.getAll(queryStatement, params)];
|
|
1537
1565
|
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1566
|
+
case 3:
|
|
1567
|
+
return [2
|
|
1568
|
+
/*return*/
|
|
1569
|
+
, _b.sent()];
|
|
1570
|
+
}
|
|
1571
|
+
});
|
|
1572
|
+
});
|
|
1573
|
+
}()];
|
|
1541
1574
|
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
case 0:
|
|
1575
|
+
case 1:
|
|
1576
|
+
records = _a.sent();
|
|
1545
1577
|
return [4
|
|
1546
1578
|
/*yield*/
|
|
1547
|
-
, this.
|
|
1579
|
+
, this.load(namespaceName, modelConstructor.name, records)];
|
|
1548
1580
|
|
|
1549
|
-
case
|
|
1550
|
-
_a = __read.apply(void 0, [_b.sent(), 1]), resultSet = _a[0];
|
|
1551
|
-
result = resultSet && resultSet.rows && resultSet.rows.length && resultSet.rows.raw && resultSet.rows.raw();
|
|
1581
|
+
case 2:
|
|
1552
1582
|
return [2
|
|
1553
1583
|
/*return*/
|
|
1554
|
-
,
|
|
1584
|
+
, _a.sent()];
|
|
1555
1585
|
}
|
|
1556
1586
|
});
|
|
1557
1587
|
});
|
|
1558
1588
|
};
|
|
1559
1589
|
|
|
1560
|
-
|
|
1590
|
+
CommonSQLiteAdapter.prototype.getById = function (tableName, id) {
|
|
1561
1591
|
return __awaiter(this, void 0, void 0, function () {
|
|
1562
|
-
var _a,
|
|
1592
|
+
var _a, queryStatement, params, record;
|
|
1563
1593
|
|
|
1564
1594
|
return __generator(this, function (_b) {
|
|
1565
1595
|
switch (_b.label) {
|
|
1566
1596
|
case 0:
|
|
1597
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1567
1598
|
return [4
|
|
1568
1599
|
/*yield*/
|
|
1569
|
-
, this.db.
|
|
1600
|
+
, this.db.get(queryStatement, params)];
|
|
1570
1601
|
|
|
1571
1602
|
case 1:
|
|
1572
|
-
|
|
1573
|
-
result = resultSet && resultSet.rows && resultSet.rows.length && resultSet.rows.raw && resultSet.rows.raw();
|
|
1603
|
+
record = _b.sent();
|
|
1574
1604
|
return [2
|
|
1575
1605
|
/*return*/
|
|
1576
|
-
,
|
|
1606
|
+
, record];
|
|
1577
1607
|
}
|
|
1578
1608
|
});
|
|
1579
1609
|
});
|
|
1580
1610
|
};
|
|
1581
1611
|
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
case 0:
|
|
1587
|
-
return [4
|
|
1588
|
-
/*yield*/
|
|
1589
|
-
, this.db.executeSql(statement, params)];
|
|
1590
|
-
|
|
1591
|
-
case 1:
|
|
1592
|
-
_a.sent();
|
|
1593
|
-
|
|
1594
|
-
return [2
|
|
1595
|
-
/*return*/
|
|
1596
|
-
];
|
|
1597
|
-
}
|
|
1598
|
-
});
|
|
1612
|
+
CommonSQLiteAdapter.prototype.idFromPredicate = function (predicates) {
|
|
1613
|
+
var predicateObjs = predicates.predicates;
|
|
1614
|
+
var idPredicate = predicateObjs.length === 1 && predicateObjs.find(function (p) {
|
|
1615
|
+
return Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["isPredicateObj"])(p) && p.field === 'id' && p.operator === 'eq';
|
|
1599
1616
|
});
|
|
1617
|
+
return idPredicate && idPredicate.operand;
|
|
1600
1618
|
};
|
|
1601
1619
|
|
|
1602
|
-
|
|
1620
|
+
CommonSQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
1621
|
+
if (firstOrLast === void 0) {
|
|
1622
|
+
firstOrLast = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["QueryOne"].FIRST;
|
|
1623
|
+
}
|
|
1624
|
+
|
|
1603
1625
|
return __awaiter(this, void 0, void 0, function () {
|
|
1604
|
-
var
|
|
1605
|
-
|
|
1606
|
-
|
|
1626
|
+
var tableName, _a, queryStatement, params, result, modelInstance;
|
|
1627
|
+
|
|
1628
|
+
return __generator(this, function (_b) {
|
|
1629
|
+
switch (_b.label) {
|
|
1607
1630
|
case 0:
|
|
1608
|
-
|
|
1631
|
+
tableName = modelConstructor.name;
|
|
1632
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryOneStatement"])(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1609
1633
|
return [4
|
|
1610
1634
|
/*yield*/
|
|
1611
|
-
, this.db.
|
|
1612
|
-
var e_1, _a;
|
|
1613
|
-
|
|
1614
|
-
try {
|
|
1615
|
-
for (var queryStatements_1 = __values(queryStatements), queryStatements_1_1 = queryStatements_1.next(); !queryStatements_1_1.done; queryStatements_1_1 = queryStatements_1.next()) {
|
|
1616
|
-
var _b = __read(queryStatements_1_1.value, 2),
|
|
1617
|
-
statement = _b[0],
|
|
1618
|
-
params = _b[1];
|
|
1619
|
-
|
|
1620
|
-
tx.executeSql(statement, params, function (_tx, res) {
|
|
1621
|
-
results.push(res.rows.raw()[0]);
|
|
1622
|
-
}, logger.warn);
|
|
1623
|
-
}
|
|
1624
|
-
} catch (e_1_1) {
|
|
1625
|
-
e_1 = {
|
|
1626
|
-
error: e_1_1
|
|
1627
|
-
};
|
|
1628
|
-
} finally {
|
|
1629
|
-
try {
|
|
1630
|
-
if (queryStatements_1_1 && !queryStatements_1_1.done && (_a = queryStatements_1["return"])) _a.call(queryStatements_1);
|
|
1631
|
-
} finally {
|
|
1632
|
-
if (e_1) throw e_1.error;
|
|
1633
|
-
}
|
|
1634
|
-
}
|
|
1635
|
-
})];
|
|
1635
|
+
, this.db.get(queryStatement, params)];
|
|
1636
1636
|
|
|
1637
1637
|
case 1:
|
|
1638
|
-
|
|
1639
|
-
|
|
1638
|
+
result = _b.sent();
|
|
1639
|
+
modelInstance = result && this.modelInstanceCreator(modelConstructor, result);
|
|
1640
1640
|
return [2
|
|
1641
1641
|
/*return*/
|
|
1642
|
-
,
|
|
1642
|
+
, modelInstance];
|
|
1643
1643
|
}
|
|
1644
1644
|
});
|
|
1645
1645
|
});
|
|
1646
|
-
};
|
|
1646
|
+
}; // Currently does not cascade
|
|
1647
|
+
// TODO: use FKs in relations and have `ON DELETE CASCADE` set
|
|
1648
|
+
// For Has Many and Has One relations to have SQL handle cascades automatically
|
|
1647
1649
|
|
|
1648
|
-
|
|
1650
|
+
|
|
1651
|
+
CommonSQLiteAdapter.prototype["delete"] = function (modelOrModelConstructor, condition) {
|
|
1649
1652
|
return __awaiter(this, void 0, void 0, function () {
|
|
1650
|
-
|
|
1651
|
-
|
|
1653
|
+
var modelConstructor, namespaceName, tableName, predicates, queryStatement, deleteStatement, models, modelInstances, model, modelConstructor, tableName, _a, queryStatement, params, fromDB, msg, predicates, predicateObjs, type, isValid, msg, _b, deleteStatement, deleteParams, _c, deleteStatement, params;
|
|
1654
|
+
|
|
1655
|
+
return __generator(this, function (_d) {
|
|
1656
|
+
switch (_d.label) {
|
|
1652
1657
|
case 0:
|
|
1658
|
+
if (!isModelConstructor(modelOrModelConstructor)) return [3
|
|
1659
|
+
/*break*/
|
|
1660
|
+
, 3];
|
|
1661
|
+
modelConstructor = modelOrModelConstructor;
|
|
1662
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1663
|
+
tableName = modelConstructor.name;
|
|
1664
|
+
predicates = condition && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(condition);
|
|
1665
|
+
queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryAllStatement"])(tableName, predicates);
|
|
1666
|
+
deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByPredicateStatement"])(tableName, predicates);
|
|
1653
1667
|
return [4
|
|
1654
1668
|
/*yield*/
|
|
1655
|
-
, this.db.
|
|
1656
|
-
var e_2, _a, e_3, _b;
|
|
1657
|
-
|
|
1658
|
-
try {
|
|
1659
|
-
for (var saveStatements_1 = __values(saveStatements), saveStatements_1_1 = saveStatements_1.next(); !saveStatements_1_1.done; saveStatements_1_1 = saveStatements_1.next()) {
|
|
1660
|
-
var _c = __read(saveStatements_1_1.value, 2),
|
|
1661
|
-
statement = _c[0],
|
|
1662
|
-
params = _c[1];
|
|
1663
|
-
|
|
1664
|
-
tx.executeSql(statement, params);
|
|
1665
|
-
}
|
|
1666
|
-
} catch (e_2_1) {
|
|
1667
|
-
e_2 = {
|
|
1668
|
-
error: e_2_1
|
|
1669
|
-
};
|
|
1670
|
-
} finally {
|
|
1671
|
-
try {
|
|
1672
|
-
if (saveStatements_1_1 && !saveStatements_1_1.done && (_a = saveStatements_1["return"])) _a.call(saveStatements_1);
|
|
1673
|
-
} finally {
|
|
1674
|
-
if (e_2) throw e_2.error;
|
|
1675
|
-
}
|
|
1676
|
-
}
|
|
1677
|
-
|
|
1678
|
-
if (deleteStatements) {
|
|
1679
|
-
try {
|
|
1680
|
-
for (var deleteStatements_1 = __values(deleteStatements), deleteStatements_1_1 = deleteStatements_1.next(); !deleteStatements_1_1.done; deleteStatements_1_1 = deleteStatements_1.next()) {
|
|
1681
|
-
var _d = __read(deleteStatements_1_1.value, 2),
|
|
1682
|
-
statement = _d[0],
|
|
1683
|
-
params = _d[1];
|
|
1684
|
-
|
|
1685
|
-
tx.executeSql(statement, params);
|
|
1686
|
-
}
|
|
1687
|
-
} catch (e_3_1) {
|
|
1688
|
-
e_3 = {
|
|
1689
|
-
error: e_3_1
|
|
1690
|
-
};
|
|
1691
|
-
} finally {
|
|
1692
|
-
try {
|
|
1693
|
-
if (deleteStatements_1_1 && !deleteStatements_1_1.done && (_b = deleteStatements_1["return"])) _b.call(deleteStatements_1);
|
|
1694
|
-
} finally {
|
|
1695
|
-
if (e_3) throw e_3.error;
|
|
1696
|
-
}
|
|
1697
|
-
}
|
|
1698
|
-
}
|
|
1699
|
-
})];
|
|
1669
|
+
, this.db.selectAndDelete(queryStatement, deleteStatement)];
|
|
1700
1670
|
|
|
1701
1671
|
case 1:
|
|
1702
|
-
|
|
1672
|
+
models = _d.sent();
|
|
1673
|
+
return [4
|
|
1674
|
+
/*yield*/
|
|
1675
|
+
, this.load(namespaceName, modelConstructor.name, models)];
|
|
1703
1676
|
|
|
1677
|
+
case 2:
|
|
1678
|
+
modelInstances = _d.sent();
|
|
1704
1679
|
return [2
|
|
1705
1680
|
/*return*/
|
|
1706
|
-
];
|
|
1707
|
-
}
|
|
1708
|
-
});
|
|
1709
|
-
});
|
|
1710
|
-
};
|
|
1681
|
+
, [modelInstances, modelInstances]];
|
|
1711
1682
|
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1683
|
+
case 3:
|
|
1684
|
+
model = modelOrModelConstructor;
|
|
1685
|
+
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
1686
|
+
tableName = modelConstructor.name;
|
|
1687
|
+
if (!condition) return [3
|
|
1688
|
+
/*break*/
|
|
1689
|
+
, 6];
|
|
1690
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1691
|
+
return [4
|
|
1692
|
+
/*yield*/
|
|
1693
|
+
, this.db.get(queryStatement, params)];
|
|
1715
1694
|
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1695
|
+
case 4:
|
|
1696
|
+
fromDB = _d.sent();
|
|
1697
|
+
|
|
1698
|
+
if (fromDB === undefined) {
|
|
1699
|
+
msg = 'Model instance not found in storage';
|
|
1700
|
+
logger.warn(msg, {
|
|
1701
|
+
model: model
|
|
1702
|
+
});
|
|
1703
|
+
return [2
|
|
1704
|
+
/*return*/
|
|
1705
|
+
, [[model], []]];
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
predicates = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(condition);
|
|
1709
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
1710
|
+
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
1711
|
+
|
|
1712
|
+
if (!isValid) {
|
|
1713
|
+
msg = 'Conditional update failed';
|
|
1714
|
+
logger.error(msg, {
|
|
1715
|
+
model: fromDB,
|
|
1716
|
+
condition: predicateObjs
|
|
1717
|
+
});
|
|
1718
|
+
throw new Error(msg);
|
|
1719
|
+
}
|
|
1720
|
+
|
|
1721
|
+
_b = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _b[0], deleteParams = _b[1];
|
|
1722
1722
|
return [4
|
|
1723
1723
|
/*yield*/
|
|
1724
|
-
, this.db.
|
|
1725
|
-
tx.executeSql(queryStatement, queryParams, function (_tx, res) {
|
|
1726
|
-
results = res.rows.raw();
|
|
1727
|
-
}, logger.warn);
|
|
1728
|
-
tx.executeSql(deleteStatement, deleteParams, function () {}, logger.warn);
|
|
1729
|
-
})];
|
|
1724
|
+
, this.db.save(deleteStatement, deleteParams)];
|
|
1730
1725
|
|
|
1731
|
-
case
|
|
1732
|
-
|
|
1726
|
+
case 5:
|
|
1727
|
+
_d.sent();
|
|
1733
1728
|
|
|
1734
1729
|
return [2
|
|
1735
1730
|
/*return*/
|
|
1736
|
-
,
|
|
1737
|
-
}
|
|
1738
|
-
});
|
|
1739
|
-
});
|
|
1740
|
-
};
|
|
1731
|
+
, [[model], [model]]];
|
|
1741
1732
|
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
return __generator(this, function (_a) {
|
|
1745
|
-
switch (_a.label) {
|
|
1746
|
-
case 0:
|
|
1733
|
+
case 6:
|
|
1734
|
+
_c = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _c[0], params = _c[1];
|
|
1747
1735
|
return [4
|
|
1748
1736
|
/*yield*/
|
|
1749
|
-
, this.db.
|
|
1750
|
-
var e_4, _a;
|
|
1737
|
+
, this.db.save(deleteStatement, params)];
|
|
1751
1738
|
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
var statement = statements_1_1.value;
|
|
1755
|
-
tx.executeSql(statement);
|
|
1756
|
-
}
|
|
1757
|
-
} catch (e_4_1) {
|
|
1758
|
-
e_4 = {
|
|
1759
|
-
error: e_4_1
|
|
1760
|
-
};
|
|
1761
|
-
} finally {
|
|
1762
|
-
try {
|
|
1763
|
-
if (statements_1_1 && !statements_1_1.done && (_a = statements_1["return"])) _a.call(statements_1);
|
|
1764
|
-
} finally {
|
|
1765
|
-
if (e_4) throw e_4.error;
|
|
1766
|
-
}
|
|
1767
|
-
}
|
|
1768
|
-
})];
|
|
1739
|
+
case 7:
|
|
1740
|
+
_d.sent();
|
|
1769
1741
|
|
|
1770
|
-
case 1:
|
|
1771
1742
|
return [2
|
|
1772
1743
|
/*return*/
|
|
1773
|
-
,
|
|
1744
|
+
, [[model], [model]]];
|
|
1774
1745
|
}
|
|
1775
1746
|
});
|
|
1776
1747
|
});
|
|
1777
|
-
};
|
|
1748
|
+
}; // Temp fix to test build, will either export a separate metadata type here, or implement Custom PK in this adapter
|
|
1778
1749
|
|
|
1779
|
-
|
|
1750
|
+
|
|
1751
|
+
CommonSQLiteAdapter.prototype.batchSave = function (modelConstructor, items) {
|
|
1780
1752
|
return __awaiter(this, void 0, void 0, function () {
|
|
1781
|
-
|
|
1782
|
-
|
|
1753
|
+
var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
|
|
1754
|
+
|
|
1755
|
+
var e_5, _a;
|
|
1756
|
+
|
|
1757
|
+
return __generator(this, function (_b) {
|
|
1758
|
+
switch (_b.label) {
|
|
1783
1759
|
case 0:
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1760
|
+
tableName = modelConstructor.name;
|
|
1761
|
+
result = [];
|
|
1762
|
+
itemsToSave = [];
|
|
1763
|
+
queryStatements = new Set();
|
|
1764
|
+
deleteStatements = new Set();
|
|
1765
|
+
saveStatements = new Set();
|
|
1766
|
+
|
|
1767
|
+
_loop_1 = function _loop_1(item) {
|
|
1768
|
+
var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
|
|
1769
|
+
var id = item.id,
|
|
1770
|
+
_deleted = item._deleted;
|
|
1771
|
+
var instance = connectedModels.find(function (_a) {
|
|
1772
|
+
var instance = _a.instance;
|
|
1773
|
+
return instance.id === id;
|
|
1774
|
+
}).instance;
|
|
1775
|
+
|
|
1776
|
+
if (_deleted) {
|
|
1777
|
+
// create the delete statements right away
|
|
1778
|
+
var deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(instance.id, tableName);
|
|
1779
|
+
deleteStatements.add(deleteStatement);
|
|
1780
|
+
result.push([item, _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].DELETE]);
|
|
1781
|
+
} else {
|
|
1782
|
+
// query statements for the saves at first
|
|
1783
|
+
var queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(id, tableName);
|
|
1784
|
+
queryStatements.add(queryStatement); // combination of insert and update items
|
|
1785
|
+
|
|
1786
|
+
itemsToSave.push(instance);
|
|
1787
|
+
}
|
|
1788
|
+
};
|
|
1789
|
+
|
|
1790
|
+
this_1 = this;
|
|
1791
|
+
|
|
1792
|
+
try {
|
|
1793
|
+
for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
1794
|
+
item = items_1_1.value;
|
|
1795
|
+
|
|
1796
|
+
_loop_1(item);
|
|
1797
|
+
}
|
|
1798
|
+
} catch (e_5_1) {
|
|
1799
|
+
e_5 = {
|
|
1800
|
+
error: e_5_1
|
|
1801
|
+
};
|
|
1802
|
+
} finally {
|
|
1803
|
+
try {
|
|
1804
|
+
if (items_1_1 && !items_1_1.done && (_a = items_1["return"])) _a.call(items_1);
|
|
1805
|
+
} finally {
|
|
1806
|
+
if (e_5) throw e_5.error;
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1788
1810
|
return [4
|
|
1789
1811
|
/*yield*/
|
|
1790
|
-
, this.db.
|
|
1812
|
+
, this.db.batchQuery(queryStatements)];
|
|
1791
1813
|
|
|
1792
1814
|
case 1:
|
|
1793
|
-
|
|
1815
|
+
queryResponses = _b.sent();
|
|
1816
|
+
queryResponses.forEach(function (response, idx) {
|
|
1817
|
+
if (response === undefined) {
|
|
1818
|
+
var insertStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelInsertStatement"])(itemsToSave[idx], tableName);
|
|
1819
|
+
saveStatements.add(insertStatement);
|
|
1820
|
+
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].INSERT]);
|
|
1821
|
+
} else {
|
|
1822
|
+
var updateStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelUpdateStatement"])(itemsToSave[idx], tableName);
|
|
1823
|
+
saveStatements.add(updateStatement);
|
|
1824
|
+
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].UPDATE]);
|
|
1825
|
+
}
|
|
1826
|
+
}); // perform all of the insert/update/delete operations in a single transaction
|
|
1794
1827
|
|
|
1795
|
-
|
|
1796
|
-
|
|
1828
|
+
return [4
|
|
1829
|
+
/*yield*/
|
|
1830
|
+
, this.db.batchSave(saveStatements, deleteStatements)];
|
|
1797
1831
|
|
|
1798
1832
|
case 2:
|
|
1833
|
+
// perform all of the insert/update/delete operations in a single transaction
|
|
1834
|
+
_b.sent();
|
|
1835
|
+
|
|
1799
1836
|
return [2
|
|
1800
1837
|
/*return*/
|
|
1801
|
-
];
|
|
1838
|
+
, result];
|
|
1802
1839
|
}
|
|
1803
1840
|
});
|
|
1804
1841
|
});
|
|
1805
1842
|
};
|
|
1806
1843
|
|
|
1807
|
-
return
|
|
1844
|
+
return CommonSQLiteAdapter;
|
|
1808
1845
|
}();
|
|
1809
1846
|
|
|
1810
|
-
|
|
1847
|
+
|
|
1811
1848
|
|
|
1812
1849
|
/***/ }),
|
|
1813
1850
|
|
|
1814
|
-
/***/ "./lib-esm/
|
|
1815
|
-
|
|
1816
|
-
!*** ./lib-esm/
|
|
1817
|
-
|
|
1818
|
-
/*! exports provided: generateSchemaStatements, implicitAuthFieldsForModel, modelCreateTableStatement, modelInsertStatement, modelUpdateStatement, queryByIdStatement, whereClauseFromPredicate, orderByClauseFromSort, limitClauseFromPagination, queryAllStatement, queryOneStatement, deleteByIdStatement, deleteByPredicateStatement */
|
|
1851
|
+
/***/ "./lib-esm/common/SQLiteUtils.js":
|
|
1852
|
+
/*!***************************************!*\
|
|
1853
|
+
!*** ./lib-esm/common/SQLiteUtils.js ***!
|
|
1854
|
+
\***************************************/
|
|
1855
|
+
/*! exports provided: getSQLiteType, generateSchemaStatements, implicitAuthFieldsForModel, modelCreateTableStatement, modelInsertStatement, modelUpdateStatement, queryByIdStatement, whereClauseFromPredicate, orderByClauseFromSort, limitClauseFromPagination, queryAllStatement, queryOneStatement, deleteByIdStatement, deleteByPredicateStatement */
|
|
1819
1856
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1820
1857
|
|
|
1821
1858
|
"use strict";
|
|
1822
1859
|
__webpack_require__.r(__webpack_exports__);
|
|
1860
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSQLiteType", function() { return getSQLiteType; });
|
|
1823
1861
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateSchemaStatements", function() { return generateSchemaStatements; });
|
|
1824
1862
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicitAuthFieldsForModel", function() { return implicitAuthFieldsForModel; });
|
|
1825
1863
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modelCreateTableStatement", function() { return modelCreateTableStatement; });
|
|
@@ -1835,7 +1873,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1835
1873
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteByPredicateStatement", function() { return deleteByPredicateStatement; });
|
|
1836
1874
|
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/datastore */ "@aws-amplify/datastore");
|
|
1837
1875
|
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__);
|
|
1838
|
-
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ "./lib-esm/SQLiteAdapter/types.js");
|
|
1839
1876
|
function _typeof(obj) {
|
|
1840
1877
|
"@babel/helpers - typeof";
|
|
1841
1878
|
|
|
@@ -1899,7 +1936,6 @@ var __values = undefined && undefined.__values || function (o) {
|
|
|
1899
1936
|
};
|
|
1900
1937
|
|
|
1901
1938
|
|
|
1902
|
-
|
|
1903
1939
|
var USER = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].USER,
|
|
1904
1940
|
isNonModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].isNonModelConstructor,
|
|
1905
1941
|
isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].isModelConstructor;
|
|
@@ -1953,6 +1989,33 @@ function prepareValueForDML(value) {
|
|
|
1953
1989
|
return "" + value;
|
|
1954
1990
|
}
|
|
1955
1991
|
|
|
1992
|
+
function getSQLiteType(scalar) {
|
|
1993
|
+
switch (scalar) {
|
|
1994
|
+
case 'Boolean':
|
|
1995
|
+
case 'Int':
|
|
1996
|
+
case 'AWSTimestamp':
|
|
1997
|
+
return 'INTEGER';
|
|
1998
|
+
|
|
1999
|
+
case 'ID':
|
|
2000
|
+
case 'String':
|
|
2001
|
+
case 'AWSDate':
|
|
2002
|
+
case 'AWSTime':
|
|
2003
|
+
case 'AWSDateTime':
|
|
2004
|
+
case 'AWSEmail':
|
|
2005
|
+
case 'AWSJSON':
|
|
2006
|
+
case 'AWSURL':
|
|
2007
|
+
case 'AWSPhone':
|
|
2008
|
+
case 'AWSIPAddress':
|
|
2009
|
+
return 'TEXT';
|
|
2010
|
+
|
|
2011
|
+
case 'Float':
|
|
2012
|
+
return 'REAL';
|
|
2013
|
+
|
|
2014
|
+
default:
|
|
2015
|
+
var _ = scalar;
|
|
2016
|
+
throw new Error("unknown type " + scalar);
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
1956
2019
|
function generateSchemaStatements(schema) {
|
|
1957
2020
|
return Object.keys(schema.namespaces).flatMap(function (namespaceName) {
|
|
1958
2021
|
var namespace = schema.namespaces[namespaceName];
|
|
@@ -1998,7 +2061,7 @@ function modelCreateTableStatement(model, userModel) {
|
|
|
1998
2061
|
return acc + '"id" PRIMARY KEY NOT NULL';
|
|
1999
2062
|
}
|
|
2000
2063
|
|
|
2001
|
-
var columnParam_1 = "\"" + field.name + "\" " +
|
|
2064
|
+
var columnParam_1 = "\"" + field.name + "\" " + getSQLiteType(field.type);
|
|
2002
2065
|
|
|
2003
2066
|
if (field.isRequired) {
|
|
2004
2067
|
columnParam_1 += ' NOT NULL';
|
|
@@ -2013,7 +2076,9 @@ function modelCreateTableStatement(model, userModel) {
|
|
|
2013
2076
|
if (Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["isTargetNameAssociation"])(field.association)) {
|
|
2014
2077
|
// check if this field has been explicitly defined in the model
|
|
2015
2078
|
var fkDefinedInModel = Object.values(model.fields).find(function (f) {
|
|
2016
|
-
|
|
2079
|
+
var _a;
|
|
2080
|
+
|
|
2081
|
+
return f.name === ((_a = field === null || field === void 0 ? void 0 : field.association) === null || _a === void 0 ? void 0 : _a.targetName);
|
|
2017
2082
|
}); // if the FK is not explicitly defined in the model, we have to add it here
|
|
2018
2083
|
|
|
2019
2084
|
if (!fkDefinedInModel) {
|
|
@@ -2090,11 +2155,41 @@ var logicalOperatorMap = {
|
|
|
2090
2155
|
notContains: 'NOT LIKE',
|
|
2091
2156
|
between: 'BETWEEN'
|
|
2092
2157
|
};
|
|
2158
|
+
/**
|
|
2159
|
+
* If the given (operator, operand) indicate the need for a special `NULL` comparison,
|
|
2160
|
+
* that `WHERE` clause condition will be returned. If not special `NULL` handling is
|
|
2161
|
+
* needed, `null` will be returned, and the caller should construct the `WHERE`
|
|
2162
|
+
* clause component using the normal operator map(s) and parameterization.
|
|
2163
|
+
*
|
|
2164
|
+
* @param operator "beginsWith" | "contains" | "notContains" | "between"
|
|
2165
|
+
* | "eq" | "ne" | "le" | "lt" | "ge" | "gt"
|
|
2166
|
+
* @param operand any
|
|
2167
|
+
* @returns (string | null) The `WHERE` clause component or `null` if N/A.
|
|
2168
|
+
*/
|
|
2169
|
+
|
|
2170
|
+
function buildSpecialNullComparison(field, operator, operand) {
|
|
2171
|
+
if (operand === null || operand === undefined) {
|
|
2172
|
+
if (operator === 'eq') {
|
|
2173
|
+
return "\"" + field + "\" IS NULL";
|
|
2174
|
+
} else if (operator === 'ne') {
|
|
2175
|
+
return "\"" + field + "\" IS NOT NULL";
|
|
2176
|
+
}
|
|
2177
|
+
} // no special null handling required
|
|
2178
|
+
|
|
2179
|
+
|
|
2180
|
+
return null;
|
|
2181
|
+
}
|
|
2093
2182
|
|
|
2094
2183
|
var whereConditionFromPredicateObject = function whereConditionFromPredicateObject(_a) {
|
|
2095
2184
|
var field = _a.field,
|
|
2096
2185
|
operator = _a.operator,
|
|
2097
2186
|
operand = _a.operand;
|
|
2187
|
+
var specialNullClause = buildSpecialNullComparison(field, operator, operand);
|
|
2188
|
+
|
|
2189
|
+
if (specialNullClause) {
|
|
2190
|
+
return [specialNullClause, []];
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2098
2193
|
var comparisonOperator = comparisonOperatorMap[operator];
|
|
2099
2194
|
|
|
2100
2195
|
if (comparisonOperator) {
|
|
@@ -2299,43 +2394,17 @@ function deleteByPredicateStatement(tableName, predicate) {
|
|
|
2299
2394
|
|
|
2300
2395
|
/***/ }),
|
|
2301
2396
|
|
|
2302
|
-
/***/ "./lib-esm/
|
|
2303
|
-
|
|
2304
|
-
!*** ./lib-esm/
|
|
2305
|
-
|
|
2306
|
-
/*! exports provided:
|
|
2397
|
+
/***/ "./lib-esm/common/constants.js":
|
|
2398
|
+
/*!*************************************!*\
|
|
2399
|
+
!*** ./lib-esm/common/constants.js ***!
|
|
2400
|
+
\*************************************/
|
|
2401
|
+
/*! exports provided: DB_NAME */
|
|
2307
2402
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2308
2403
|
|
|
2309
2404
|
"use strict";
|
|
2310
2405
|
__webpack_require__.r(__webpack_exports__);
|
|
2311
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
|
2312
|
-
|
|
2313
|
-
switch (scalar) {
|
|
2314
|
-
case 'Boolean':
|
|
2315
|
-
case 'Int':
|
|
2316
|
-
case 'AWSTimestamp':
|
|
2317
|
-
return 'INTEGER';
|
|
2318
|
-
|
|
2319
|
-
case 'ID':
|
|
2320
|
-
case 'String':
|
|
2321
|
-
case 'AWSDate':
|
|
2322
|
-
case 'AWSTime':
|
|
2323
|
-
case 'AWSDateTime':
|
|
2324
|
-
case 'AWSEmail':
|
|
2325
|
-
case 'AWSJSON':
|
|
2326
|
-
case 'AWSURL':
|
|
2327
|
-
case 'AWSPhone':
|
|
2328
|
-
case 'AWSIPAddress':
|
|
2329
|
-
return 'TEXT';
|
|
2330
|
-
|
|
2331
|
-
case 'Float':
|
|
2332
|
-
return 'REAL';
|
|
2333
|
-
|
|
2334
|
-
default:
|
|
2335
|
-
var _ = scalar;
|
|
2336
|
-
throw new Error("unknown type " + scalar);
|
|
2337
|
-
}
|
|
2338
|
-
}
|
|
2406
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DB_NAME", function() { return DB_NAME; });
|
|
2407
|
+
var DB_NAME = 'AmplifyDatastore';
|
|
2339
2408
|
|
|
2340
2409
|
/***/ }),
|
|
2341
2410
|
|