@aws-amplify/datastore-storage-adapter 1.2.13 → 1.2.14-unstable.3
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/ExpoSQLiteAdapter/index.js +7 -0
- package/SQLiteAdapter/index.js +7 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.js +2502 -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 +1179 -1151
- 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 -582
- 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 +579 -0
- package/lib/common/CommonSQLiteAdapter.js.map +1 -0
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.js +26 -2
- 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 -582
- 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 +577 -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 +24 -1
- 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 +7 -4
- 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 +478 -0
- package/src/{SQLiteAdapter → common}/SQLiteUtils.ts +32 -3
- 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,1406 +424,1435 @@ 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
|
-
|
|
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
|
+
})];
|
|
525
523
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
result.push([instance, opType]);
|
|
529
|
-
}
|
|
524
|
+
case 1:
|
|
525
|
+
_a.sent();
|
|
530
526
|
|
|
531
|
-
|
|
527
|
+
return [2
|
|
528
|
+
/*return*/
|
|
529
|
+
, results];
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
});
|
|
533
|
+
};
|
|
532
534
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
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;
|
|
537
544
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
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];
|
|
542
550
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
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
|
+
})];
|
|
551
565
|
|
|
552
|
-
case
|
|
553
|
-
|
|
566
|
+
case 1:
|
|
567
|
+
_a.sent();
|
|
554
568
|
|
|
555
|
-
if (!
|
|
569
|
+
if (!deleteParameterizedStatements) return [3
|
|
556
570
|
/*break*/
|
|
557
|
-
,
|
|
571
|
+
, 3];
|
|
558
572
|
return [4
|
|
559
573
|
/*yield*/
|
|
560
|
-
,
|
|
574
|
+
, this.db.transaction(function (tx) {
|
|
575
|
+
var e_3, _a;
|
|
561
576
|
|
|
562
|
-
|
|
563
|
-
|
|
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];
|
|
564
582
|
|
|
565
|
-
|
|
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
|
+
})];
|
|
566
597
|
|
|
567
|
-
case
|
|
568
|
-
|
|
569
|
-
/*break*/
|
|
570
|
-
, 13];
|
|
598
|
+
case 2:
|
|
599
|
+
_a.sent();
|
|
571
600
|
|
|
572
|
-
|
|
573
|
-
if (e_1) throw e_1.error;
|
|
574
|
-
return [7
|
|
575
|
-
/*endfinally*/
|
|
576
|
-
];
|
|
601
|
+
_a.label = 3;
|
|
577
602
|
|
|
578
|
-
case
|
|
579
|
-
return [
|
|
580
|
-
/*
|
|
603
|
+
case 3:
|
|
604
|
+
return [2
|
|
605
|
+
/*return*/
|
|
581
606
|
];
|
|
607
|
+
}
|
|
608
|
+
});
|
|
609
|
+
});
|
|
610
|
+
};
|
|
582
611
|
|
|
583
|
-
|
|
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];
|
|
584
622
|
return [4
|
|
585
623
|
/*yield*/
|
|
586
|
-
, 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
|
+
})];
|
|
587
630
|
|
|
588
|
-
case
|
|
589
|
-
|
|
631
|
+
case 1:
|
|
632
|
+
_c.sent();
|
|
590
633
|
|
|
591
634
|
return [2
|
|
592
635
|
/*return*/
|
|
593
|
-
,
|
|
636
|
+
, results];
|
|
594
637
|
}
|
|
595
638
|
});
|
|
596
639
|
});
|
|
597
640
|
};
|
|
598
641
|
|
|
599
|
-
|
|
600
|
-
var records_1, records_1_1, records_2, records_2_1;
|
|
601
|
-
|
|
602
|
-
var e_2, _a, e_3, _b, e_4, _c;
|
|
603
|
-
|
|
642
|
+
SQLiteDatabase.prototype.executeStatements = function (statements) {
|
|
604
643
|
return __awaiter(this, void 0, void 0, function () {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
var _this = this;
|
|
608
|
-
|
|
609
|
-
return __generator(this, function (_g) {
|
|
610
|
-
switch (_g.label) {
|
|
644
|
+
return __generator(this, function (_a) {
|
|
645
|
+
switch (_a.label) {
|
|
611
646
|
case 0:
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
var
|
|
616
|
-
return modelName;
|
|
617
|
-
});
|
|
618
|
-
modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
|
|
619
|
-
|
|
620
|
-
if (connectionTableNames.length === 0) {
|
|
621
|
-
return [2
|
|
622
|
-
/*return*/
|
|
623
|
-
, records.map(function (record) {
|
|
624
|
-
return _this.modelInstanceCreator(modelConstructor, record);
|
|
625
|
-
})];
|
|
626
|
-
}
|
|
647
|
+
return [4
|
|
648
|
+
/*yield*/
|
|
649
|
+
, this.db.transaction(function (tx) {
|
|
650
|
+
var e_4, _a;
|
|
627
651
|
|
|
628
|
-
|
|
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
|
+
})];
|
|
629
669
|
|
|
630
670
|
case 1:
|
|
631
|
-
|
|
671
|
+
_a.sent();
|
|
632
672
|
|
|
633
|
-
|
|
634
|
-
|
|
673
|
+
return [2
|
|
674
|
+
/*return*/
|
|
675
|
+
];
|
|
676
|
+
}
|
|
677
|
+
});
|
|
678
|
+
});
|
|
679
|
+
};
|
|
635
680
|
|
|
636
|
-
|
|
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');
|
|
637
690
|
return [4
|
|
638
691
|
/*yield*/
|
|
639
|
-
,
|
|
692
|
+
, this.db.close()];
|
|
640
693
|
|
|
641
|
-
case
|
|
642
|
-
|
|
643
|
-
/*break*/
|
|
644
|
-
, 33];
|
|
645
|
-
relation = relations_1_1.value;
|
|
646
|
-
fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
|
|
647
|
-
modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
|
|
648
|
-
_d = relationType;
|
|
694
|
+
case 1:
|
|
695
|
+
_a.sent();
|
|
649
696
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
/*break*/
|
|
654
|
-
, 4];
|
|
697
|
+
logger.debug('Database closed');
|
|
698
|
+
this.db = undefined;
|
|
699
|
+
_a.label = 2;
|
|
655
700
|
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
701
|
+
case 2:
|
|
702
|
+
return [2
|
|
703
|
+
/*return*/
|
|
704
|
+
];
|
|
705
|
+
}
|
|
706
|
+
});
|
|
707
|
+
});
|
|
708
|
+
};
|
|
660
709
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
/*break*/
|
|
664
|
-
, 30];
|
|
665
|
-
}
|
|
710
|
+
return SQLiteDatabase;
|
|
711
|
+
}();
|
|
666
712
|
|
|
667
|
-
|
|
668
|
-
/*break*/
|
|
669
|
-
, 31];
|
|
713
|
+
/* harmony default export */ __webpack_exports__["default"] = (SQLiteDatabase);
|
|
670
714
|
|
|
671
|
-
|
|
672
|
-
_g.trys.push([4, 10, 11, 16]);
|
|
715
|
+
/***/ }),
|
|
673
716
|
|
|
674
|
-
|
|
675
|
-
|
|
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__) {
|
|
676
723
|
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
_e = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
|
|
692
|
-
return [4
|
|
693
|
-
/*yield*/
|
|
694
|
-
, this.db.get(queryStatement, params)];
|
|
695
|
-
|
|
696
|
-
case 7:
|
|
697
|
-
connectionRecord = _g.sent();
|
|
698
|
-
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
699
|
-
_g.label = 8;
|
|
700
|
-
|
|
701
|
-
case 8:
|
|
702
|
-
return [3
|
|
703
|
-
/*break*/
|
|
704
|
-
, 5];
|
|
705
|
-
|
|
706
|
-
case 9:
|
|
707
|
-
return [3
|
|
708
|
-
/*break*/
|
|
709
|
-
, 16];
|
|
710
|
-
|
|
711
|
-
case 10:
|
|
712
|
-
e_3_1 = _g.sent();
|
|
713
|
-
e_3 = {
|
|
714
|
-
error: e_3_1
|
|
715
|
-
};
|
|
716
|
-
return [3
|
|
717
|
-
/*break*/
|
|
718
|
-
, 16];
|
|
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
|
+
}
|
|
719
738
|
|
|
720
|
-
|
|
721
|
-
|
|
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
|
+
}
|
|
722
747
|
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
748
|
+
function rejected(value) {
|
|
749
|
+
try {
|
|
750
|
+
step(generator["throw"](value));
|
|
751
|
+
} catch (e) {
|
|
752
|
+
reject(e);
|
|
753
|
+
}
|
|
754
|
+
}
|
|
729
755
|
|
|
730
|
-
|
|
731
|
-
|
|
756
|
+
function step(result) {
|
|
757
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
758
|
+
}
|
|
732
759
|
|
|
733
|
-
|
|
760
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
761
|
+
});
|
|
762
|
+
};
|
|
734
763
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
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;
|
|
739
785
|
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
786
|
+
function verb(n) {
|
|
787
|
+
return function (v) {
|
|
788
|
+
return step([n, v]);
|
|
789
|
+
};
|
|
790
|
+
}
|
|
745
791
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
/*endfinally*/
|
|
749
|
-
];
|
|
792
|
+
function step(op) {
|
|
793
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
750
794
|
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
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];
|
|
755
799
|
|
|
756
|
-
|
|
757
|
-
|
|
800
|
+
switch (op[0]) {
|
|
801
|
+
case 0:
|
|
802
|
+
case 1:
|
|
803
|
+
t = op;
|
|
804
|
+
break;
|
|
758
805
|
|
|
759
|
-
|
|
760
|
-
|
|
806
|
+
case 4:
|
|
807
|
+
_.label++;
|
|
808
|
+
return {
|
|
809
|
+
value: op[1],
|
|
810
|
+
done: false
|
|
811
|
+
};
|
|
761
812
|
|
|
762
|
-
case
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
813
|
+
case 5:
|
|
814
|
+
_.label++;
|
|
815
|
+
y = op[1];
|
|
816
|
+
op = [0];
|
|
817
|
+
continue;
|
|
766
818
|
|
|
767
|
-
case
|
|
768
|
-
|
|
769
|
-
/*break*/
|
|
770
|
-
, 22];
|
|
771
|
-
recordItem = records_2_1.value;
|
|
772
|
-
if (!recordItem[targetName]) return [3
|
|
773
|
-
/*break*/
|
|
774
|
-
, 21];
|
|
775
|
-
_f = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
|
|
776
|
-
return [4
|
|
777
|
-
/*yield*/
|
|
778
|
-
, this.db.get(queryStatement, params)];
|
|
819
|
+
case 7:
|
|
820
|
+
op = _.ops.pop();
|
|
779
821
|
|
|
780
|
-
|
|
781
|
-
connectionRecord = _g.sent();
|
|
782
|
-
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
783
|
-
delete recordItem[targetName];
|
|
784
|
-
_g.label = 21;
|
|
822
|
+
_.trys.pop();
|
|
785
823
|
|
|
786
|
-
|
|
787
|
-
return [3
|
|
788
|
-
/*break*/
|
|
789
|
-
, 18];
|
|
824
|
+
continue;
|
|
790
825
|
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
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
|
+
}
|
|
795
831
|
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
};
|
|
801
|
-
return [3
|
|
802
|
-
/*break*/
|
|
803
|
-
, 29];
|
|
832
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
833
|
+
_.label = op[1];
|
|
834
|
+
break;
|
|
835
|
+
}
|
|
804
836
|
|
|
805
|
-
|
|
806
|
-
|
|
837
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
838
|
+
_.label = t[1];
|
|
839
|
+
t = op;
|
|
840
|
+
break;
|
|
841
|
+
}
|
|
807
842
|
|
|
808
|
-
if (
|
|
809
|
-
|
|
810
|
-
, 26];
|
|
811
|
-
return [4
|
|
812
|
-
/*yield*/
|
|
813
|
-
, _c.call(records_2)];
|
|
843
|
+
if (t && _.label < t[2]) {
|
|
844
|
+
_.label = t[2];
|
|
814
845
|
|
|
815
|
-
|
|
816
|
-
_g.sent();
|
|
846
|
+
_.ops.push(op);
|
|
817
847
|
|
|
818
|
-
|
|
848
|
+
break;
|
|
849
|
+
}
|
|
819
850
|
|
|
820
|
-
|
|
821
|
-
return [3
|
|
822
|
-
/*break*/
|
|
823
|
-
, 28];
|
|
851
|
+
if (t[2]) _.ops.pop();
|
|
824
852
|
|
|
825
|
-
|
|
826
|
-
if (e_4) throw e_4.error;
|
|
827
|
-
return [7
|
|
828
|
-
/*endfinally*/
|
|
829
|
-
];
|
|
853
|
+
_.trys.pop();
|
|
830
854
|
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
/*endfinally*/
|
|
834
|
-
];
|
|
855
|
+
continue;
|
|
856
|
+
}
|
|
835
857
|
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
858
|
+
op = body.call(thisArg, _);
|
|
859
|
+
} catch (e) {
|
|
860
|
+
op = [6, e];
|
|
861
|
+
y = 0;
|
|
862
|
+
} finally {
|
|
863
|
+
f = t = 0;
|
|
864
|
+
}
|
|
865
|
+
}
|
|
840
866
|
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
867
|
+
if (op[0] & 5) throw op[1];
|
|
868
|
+
return {
|
|
869
|
+
value: op[0] ? op[1] : void 0,
|
|
870
|
+
done: true
|
|
871
|
+
};
|
|
872
|
+
}
|
|
873
|
+
};
|
|
846
874
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
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);
|
|
850
882
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
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
|
+
}
|
|
855
890
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
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
|
+
};
|
|
860
900
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
, 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;
|
|
869
908
|
|
|
870
|
-
|
|
871
|
-
|
|
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
|
+
}
|
|
872
924
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
, 37];
|
|
876
|
-
return [4
|
|
877
|
-
/*yield*/
|
|
878
|
-
, _a.call(relations_1)];
|
|
925
|
+
return ar;
|
|
926
|
+
};
|
|
879
927
|
|
|
880
|
-
|
|
881
|
-
|
|
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
|
+
};
|
|
882
944
|
|
|
883
|
-
_g.label = 37;
|
|
884
945
|
|
|
885
|
-
case 37:
|
|
886
|
-
return [3
|
|
887
|
-
/*break*/
|
|
888
|
-
, 39];
|
|
889
946
|
|
|
890
|
-
case 38:
|
|
891
|
-
if (e_2) throw e_2.error;
|
|
892
|
-
return [7
|
|
893
|
-
/*endfinally*/
|
|
894
|
-
];
|
|
895
947
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
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');
|
|
900
952
|
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
}
|
|
908
|
-
});
|
|
909
|
-
});
|
|
910
|
-
};
|
|
953
|
+
var CommonSQLiteAdapter =
|
|
954
|
+
/** @class */
|
|
955
|
+
function () {
|
|
956
|
+
function CommonSQLiteAdapter(db) {
|
|
957
|
+
this.db = db;
|
|
958
|
+
}
|
|
911
959
|
|
|
912
|
-
|
|
960
|
+
CommonSQLiteAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {
|
|
913
961
|
return __awaiter(this, void 0, void 0, function () {
|
|
914
|
-
var
|
|
962
|
+
var statements, error_1;
|
|
915
963
|
|
|
916
964
|
var _this = this;
|
|
917
965
|
|
|
918
966
|
return __generator(this, function (_a) {
|
|
919
967
|
switch (_a.label) {
|
|
920
968
|
case 0:
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
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:
|
|
928
981
|
return [4
|
|
929
982
|
/*yield*/
|
|
930
|
-
,
|
|
931
|
-
return __awaiter(_this, void 0, void 0, function () {
|
|
932
|
-
var record, _a, queryStatement, params;
|
|
983
|
+
, this.initPromise];
|
|
933
984
|
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
case 0:
|
|
937
|
-
if (!queryById) return [3
|
|
938
|
-
/*break*/
|
|
939
|
-
, 2];
|
|
940
|
-
return [4
|
|
941
|
-
/*yield*/
|
|
942
|
-
, this.getById(tableName, queryById)];
|
|
985
|
+
case 2:
|
|
986
|
+
_a.sent();
|
|
943
987
|
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
/*return*/
|
|
948
|
-
, record ? [record] : []];
|
|
988
|
+
return [2
|
|
989
|
+
/*return*/
|
|
990
|
+
];
|
|
949
991
|
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
992
|
+
case 3:
|
|
993
|
+
this.schema = theSchema;
|
|
994
|
+
this.namespaceResolver = namespaceResolver;
|
|
995
|
+
this.modelInstanceCreator = modelInstanceCreator;
|
|
996
|
+
this.getModelConstructorByModelName = getModelConstructorByModelName;
|
|
997
|
+
_a.label = 4;
|
|
955
998
|
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
/*return*/
|
|
959
|
-
, _b.sent()];
|
|
960
|
-
}
|
|
961
|
-
});
|
|
962
|
-
});
|
|
963
|
-
}()];
|
|
999
|
+
case 4:
|
|
1000
|
+
_a.trys.push([4, 7,, 8]);
|
|
964
1001
|
|
|
965
|
-
case 1:
|
|
966
|
-
records = _a.sent();
|
|
967
1002
|
return [4
|
|
968
1003
|
/*yield*/
|
|
969
|
-
, this.
|
|
970
|
-
|
|
971
|
-
case 2:
|
|
972
|
-
return [2
|
|
973
|
-
/*return*/
|
|
974
|
-
, _a.sent()];
|
|
975
|
-
}
|
|
976
|
-
});
|
|
977
|
-
});
|
|
978
|
-
};
|
|
1004
|
+
, this.db.init()];
|
|
979
1005
|
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
var _a, queryStatement, params, record;
|
|
1006
|
+
case 5:
|
|
1007
|
+
_a.sent();
|
|
983
1008
|
|
|
984
|
-
|
|
985
|
-
switch (_b.label) {
|
|
986
|
-
case 0:
|
|
987
|
-
_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);
|
|
988
1010
|
return [4
|
|
989
1011
|
/*yield*/
|
|
990
|
-
, this.db.
|
|
1012
|
+
, this.db.createSchema(statements)];
|
|
991
1013
|
|
|
992
|
-
case
|
|
993
|
-
|
|
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:
|
|
994
1030
|
return [2
|
|
995
1031
|
/*return*/
|
|
996
|
-
|
|
1032
|
+
];
|
|
997
1033
|
}
|
|
998
1034
|
});
|
|
999
1035
|
});
|
|
1000
1036
|
};
|
|
1001
1037
|
|
|
1002
|
-
|
|
1003
|
-
var predicateObjs = predicates.predicates;
|
|
1004
|
-
var idPredicate = predicateObjs.length === 1 && predicateObjs.find(function (p) {
|
|
1005
|
-
return Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["isPredicateObj"])(p) && p.field === 'id' && p.operator === 'eq';
|
|
1006
|
-
});
|
|
1007
|
-
return idPredicate && idPredicate.operand;
|
|
1008
|
-
};
|
|
1009
|
-
|
|
1010
|
-
SQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
1011
|
-
if (firstOrLast === void 0) {
|
|
1012
|
-
firstOrLast = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["QueryOne"].FIRST;
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1038
|
+
CommonSQLiteAdapter.prototype.clear = function () {
|
|
1015
1039
|
return __awaiter(this, void 0, void 0, function () {
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
return __generator(this, function (_b) {
|
|
1019
|
-
switch (_b.label) {
|
|
1040
|
+
return __generator(this, function (_a) {
|
|
1041
|
+
switch (_a.label) {
|
|
1020
1042
|
case 0:
|
|
1021
|
-
tableName = modelConstructor.name;
|
|
1022
|
-
_a = __read(Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryOneStatement"])(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1023
1043
|
return [4
|
|
1024
1044
|
/*yield*/
|
|
1025
|
-
, this.db.
|
|
1045
|
+
, this.db.clear()];
|
|
1026
1046
|
|
|
1027
1047
|
case 1:
|
|
1028
|
-
|
|
1029
|
-
|
|
1048
|
+
_a.sent();
|
|
1049
|
+
|
|
1050
|
+
this.initPromise = undefined;
|
|
1030
1051
|
return [2
|
|
1031
1052
|
/*return*/
|
|
1032
|
-
|
|
1053
|
+
];
|
|
1033
1054
|
}
|
|
1034
1055
|
});
|
|
1035
1056
|
});
|
|
1036
|
-
};
|
|
1037
|
-
// TODO: use FKs in relations and have `ON DELETE CASCADE` set
|
|
1038
|
-
// For Has Many and Has One relations to have SQL handle cascades automatically
|
|
1057
|
+
};
|
|
1039
1058
|
|
|
1059
|
+
CommonSQLiteAdapter.prototype.save = function (model, condition) {
|
|
1060
|
+
var e_1, _a;
|
|
1040
1061
|
|
|
1041
|
-
SQLiteAdapter.prototype["delete"] = function (modelOrModelConstructor, condition) {
|
|
1042
1062
|
return __awaiter(this, void 0, void 0, function () {
|
|
1043
|
-
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;
|
|
1044
1064
|
|
|
1045
1065
|
return __generator(this, function (_d) {
|
|
1046
1066
|
switch (_d.label) {
|
|
1047
1067
|
case 0:
|
|
1048
|
-
|
|
1049
|
-
/*break*/
|
|
1050
|
-
, 3];
|
|
1051
|
-
modelConstructor = modelOrModelConstructor;
|
|
1052
|
-
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1068
|
+
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
1053
1069
|
tableName = modelConstructor.name;
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
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];
|
|
1057
1082
|
return [4
|
|
1058
1083
|
/*yield*/
|
|
1059
|
-
, this.db.
|
|
1084
|
+
, this.db.get(queryStatement, params)];
|
|
1060
1085
|
|
|
1061
1086
|
case 1:
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
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;
|
|
1066
1107
|
|
|
1067
1108
|
case 2:
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1109
|
+
_d.trys.push([2, 8, 9, 14]);
|
|
1110
|
+
|
|
1111
|
+
connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
1112
|
+
_d.label = 3;
|
|
1072
1113
|
|
|
1073
1114
|
case 3:
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1115
|
+
return [4
|
|
1116
|
+
/*yield*/
|
|
1117
|
+
, connectionStoreNames_1.next()];
|
|
1118
|
+
|
|
1119
|
+
case 4:
|
|
1120
|
+
if (!(connectionStoreNames_1_1 = _d.sent(), !connectionStoreNames_1_1.done)) return [3
|
|
1078
1121
|
/*break*/
|
|
1079
|
-
,
|
|
1080
|
-
|
|
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];
|
|
1081
1127
|
return [4
|
|
1082
1128
|
/*yield*/
|
|
1083
|
-
, this.db.get(
|
|
1129
|
+
, this.db.get(queryStatement_1, params_1)];
|
|
1084
1130
|
|
|
1085
|
-
case
|
|
1086
|
-
|
|
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
|
+
saveStatements.add(saveStatement);
|
|
1136
|
+
result.push([instance, opType]);
|
|
1137
|
+
_d.label = 6;
|
|
1087
1138
|
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
});
|
|
1093
|
-
return [2
|
|
1094
|
-
/*return*/
|
|
1095
|
-
, [[model], []]];
|
|
1096
|
-
}
|
|
1139
|
+
case 6:
|
|
1140
|
+
return [3
|
|
1141
|
+
/*break*/
|
|
1142
|
+
, 3];
|
|
1097
1143
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1144
|
+
case 7:
|
|
1145
|
+
return [3
|
|
1146
|
+
/*break*/
|
|
1147
|
+
, 14];
|
|
1101
1148
|
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1149
|
+
case 8:
|
|
1150
|
+
e_1_1 = _d.sent();
|
|
1151
|
+
e_1 = {
|
|
1152
|
+
error: e_1_1
|
|
1153
|
+
};
|
|
1154
|
+
return [3
|
|
1155
|
+
/*break*/
|
|
1156
|
+
, 14];
|
|
1157
|
+
|
|
1158
|
+
case 9:
|
|
1159
|
+
_d.trys.push([9,, 12, 13]);
|
|
1110
1160
|
|
|
1111
|
-
|
|
1161
|
+
if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1["return"]))) return [3
|
|
1162
|
+
/*break*/
|
|
1163
|
+
, 11];
|
|
1112
1164
|
return [4
|
|
1113
1165
|
/*yield*/
|
|
1114
|
-
,
|
|
1166
|
+
, _a.call(connectionStoreNames_1)];
|
|
1115
1167
|
|
|
1116
|
-
case
|
|
1168
|
+
case 10:
|
|
1117
1169
|
_d.sent();
|
|
1118
1170
|
|
|
1119
|
-
|
|
1120
|
-
/*return*/
|
|
1121
|
-
, [[model], [model]]];
|
|
1171
|
+
_d.label = 11;
|
|
1122
1172
|
|
|
1123
|
-
case
|
|
1124
|
-
|
|
1173
|
+
case 11:
|
|
1174
|
+
return [3
|
|
1175
|
+
/*break*/
|
|
1176
|
+
, 13];
|
|
1177
|
+
|
|
1178
|
+
case 12:
|
|
1179
|
+
if (e_1) throw e_1.error;
|
|
1180
|
+
return [7
|
|
1181
|
+
/*endfinally*/
|
|
1182
|
+
];
|
|
1183
|
+
|
|
1184
|
+
case 13:
|
|
1185
|
+
return [7
|
|
1186
|
+
/*endfinally*/
|
|
1187
|
+
];
|
|
1188
|
+
|
|
1189
|
+
case 14:
|
|
1125
1190
|
return [4
|
|
1126
1191
|
/*yield*/
|
|
1127
|
-
, this.db.
|
|
1192
|
+
, this.db.batchSave(saveStatements)];
|
|
1128
1193
|
|
|
1129
|
-
case
|
|
1194
|
+
case 15:
|
|
1130
1195
|
_d.sent();
|
|
1131
1196
|
|
|
1132
1197
|
return [2
|
|
1133
1198
|
/*return*/
|
|
1134
|
-
,
|
|
1199
|
+
, result];
|
|
1135
1200
|
}
|
|
1136
1201
|
});
|
|
1137
1202
|
});
|
|
1138
1203
|
};
|
|
1139
1204
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
|
|
1143
|
-
|
|
1144
|
-
var e_5, _a;
|
|
1145
|
-
|
|
1146
|
-
return __generator(this, function (_b) {
|
|
1147
|
-
switch (_b.label) {
|
|
1148
|
-
case 0:
|
|
1149
|
-
tableName = modelConstructor.name;
|
|
1150
|
-
result = [];
|
|
1151
|
-
itemsToSave = [];
|
|
1152
|
-
queryStatements = new Set();
|
|
1153
|
-
deleteStatements = new Set();
|
|
1154
|
-
saveStatements = new Set();
|
|
1155
|
-
|
|
1156
|
-
_loop_1 = function _loop_1(item) {
|
|
1157
|
-
var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
|
|
1158
|
-
var id = item.id,
|
|
1159
|
-
_deleted = item._deleted;
|
|
1160
|
-
var instance = connectedModels.find(function (_a) {
|
|
1161
|
-
var instance = _a.instance;
|
|
1162
|
-
return instance.id === id;
|
|
1163
|
-
}).instance;
|
|
1205
|
+
CommonSQLiteAdapter.prototype.load = function (namespaceName, srcModelName, records) {
|
|
1206
|
+
var records_1, records_1_1, records_2, records_2_1;
|
|
1164
1207
|
|
|
1165
|
-
|
|
1166
|
-
// create the delete statements right away
|
|
1167
|
-
var deleteStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["deleteByIdStatement"])(instance.id, tableName);
|
|
1168
|
-
deleteStatements.add(deleteStatement);
|
|
1169
|
-
result.push([item, _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].DELETE]);
|
|
1170
|
-
} else {
|
|
1171
|
-
// query statements for the saves at first
|
|
1172
|
-
var queryStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["queryByIdStatement"])(id, tableName);
|
|
1173
|
-
queryStatements.add(queryStatement); // combination of insert and update items
|
|
1208
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
1174
1209
|
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
};
|
|
1210
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1211
|
+
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;
|
|
1178
1212
|
|
|
1179
|
-
|
|
1213
|
+
var _this = this;
|
|
1180
1214
|
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1215
|
+
return __generator(this, function (_g) {
|
|
1216
|
+
switch (_g.label) {
|
|
1217
|
+
case 0:
|
|
1218
|
+
namespace = this.schema.namespaces[namespaceName];
|
|
1219
|
+
relations = namespace.relationships[srcModelName].relationTypes;
|
|
1220
|
+
connectionTableNames = relations.map(function (_a) {
|
|
1221
|
+
var modelName = _a.modelName;
|
|
1222
|
+
return modelName;
|
|
1223
|
+
});
|
|
1224
|
+
modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
|
|
1184
1225
|
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
};
|
|
1191
|
-
} finally {
|
|
1192
|
-
try {
|
|
1193
|
-
if (items_1_1 && !items_1_1.done && (_a = items_1["return"])) _a.call(items_1);
|
|
1194
|
-
} finally {
|
|
1195
|
-
if (e_5) throw e_5.error;
|
|
1196
|
-
}
|
|
1226
|
+
if (connectionTableNames.length === 0) {
|
|
1227
|
+
return [2
|
|
1228
|
+
/*return*/
|
|
1229
|
+
, records.map(function (record) {
|
|
1230
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
1231
|
+
})];
|
|
1197
1232
|
}
|
|
1198
1233
|
|
|
1199
|
-
|
|
1200
|
-
/*yield*/
|
|
1201
|
-
, this.db.batchQuery(queryStatements)];
|
|
1234
|
+
_g.label = 1;
|
|
1202
1235
|
|
|
1203
1236
|
case 1:
|
|
1204
|
-
|
|
1205
|
-
queryResponses.forEach(function (response, idx) {
|
|
1206
|
-
if (response === undefined) {
|
|
1207
|
-
var insertStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelInsertStatement"])(itemsToSave[idx], tableName);
|
|
1208
|
-
saveStatements.add(insertStatement);
|
|
1209
|
-
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].INSERT]);
|
|
1210
|
-
} else {
|
|
1211
|
-
var updateStatement = Object(_SQLiteUtils__WEBPACK_IMPORTED_MODULE_2__["modelUpdateStatement"])(itemsToSave[idx], tableName);
|
|
1212
|
-
saveStatements.add(updateStatement);
|
|
1213
|
-
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_3__["OpType"].UPDATE]);
|
|
1214
|
-
}
|
|
1215
|
-
}); // perform all of the insert/update/delete operations in a single transaction
|
|
1237
|
+
_g.trys.push([1, 34, 35, 40]);
|
|
1216
1238
|
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
, this.db.batchSave(saveStatements, deleteStatements)];
|
|
1239
|
+
relations_1 = __asyncValues(relations);
|
|
1240
|
+
_g.label = 2;
|
|
1220
1241
|
|
|
1221
1242
|
case 2:
|
|
1222
|
-
|
|
1223
|
-
|
|
1243
|
+
return [4
|
|
1244
|
+
/*yield*/
|
|
1245
|
+
, relations_1.next()];
|
|
1224
1246
|
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1247
|
+
case 3:
|
|
1248
|
+
if (!(relations_1_1 = _g.sent(), !relations_1_1.done)) return [3
|
|
1249
|
+
/*break*/
|
|
1250
|
+
, 33];
|
|
1251
|
+
relation = relations_1_1.value;
|
|
1252
|
+
fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
|
|
1253
|
+
modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
|
|
1254
|
+
_d = relationType;
|
|
1232
1255
|
|
|
1233
|
-
|
|
1234
|
-
|
|
1256
|
+
switch (_d) {
|
|
1257
|
+
case 'HAS_ONE':
|
|
1258
|
+
return [3
|
|
1259
|
+
/*break*/
|
|
1260
|
+
, 4];
|
|
1235
1261
|
|
|
1262
|
+
case 'BELONGS_TO':
|
|
1263
|
+
return [3
|
|
1264
|
+
/*break*/
|
|
1265
|
+
, 17];
|
|
1236
1266
|
|
|
1237
|
-
|
|
1267
|
+
case 'HAS_MANY':
|
|
1268
|
+
return [3
|
|
1269
|
+
/*break*/
|
|
1270
|
+
, 30];
|
|
1271
|
+
}
|
|
1238
1272
|
|
|
1239
|
-
|
|
1273
|
+
return [3
|
|
1274
|
+
/*break*/
|
|
1275
|
+
, 31];
|
|
1240
1276
|
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
!*** ./lib-esm/SQLiteAdapter/SQLiteDatabase.js ***!
|
|
1244
|
-
\*************************************************/
|
|
1245
|
-
/*! exports provided: default */
|
|
1246
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1277
|
+
case 4:
|
|
1278
|
+
_g.trys.push([4, 10, 11, 16]);
|
|
1247
1279
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
/* harmony import */ var react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-native-sqlite-storage */ "react-native-sqlite-storage");
|
|
1251
|
-
/* harmony import */ var react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0__);
|
|
1252
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
|
|
1253
|
-
/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
|
|
1254
|
-
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
1255
|
-
function adopt(value) {
|
|
1256
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
1257
|
-
resolve(value);
|
|
1258
|
-
});
|
|
1259
|
-
}
|
|
1280
|
+
records_1 = __asyncValues(records);
|
|
1281
|
+
_g.label = 5;
|
|
1260
1282
|
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
} catch (e) {
|
|
1266
|
-
reject(e);
|
|
1267
|
-
}
|
|
1268
|
-
}
|
|
1283
|
+
case 5:
|
|
1284
|
+
return [4
|
|
1285
|
+
/*yield*/
|
|
1286
|
+
, records_1.next()];
|
|
1269
1287
|
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1288
|
+
case 6:
|
|
1289
|
+
if (!(records_1_1 = _g.sent(), !records_1_1.done)) return [3
|
|
1290
|
+
/*break*/
|
|
1291
|
+
, 9];
|
|
1292
|
+
recordItem = records_1_1.value;
|
|
1293
|
+
getByfield = recordItem[targetName] ? targetName : fieldName;
|
|
1294
|
+
if (!recordItem[getByfield]) return [3
|
|
1295
|
+
/*break*/
|
|
1296
|
+
, 9];
|
|
1297
|
+
_e = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
|
|
1298
|
+
return [4
|
|
1299
|
+
/*yield*/
|
|
1300
|
+
, this.db.get(queryStatement, params)];
|
|
1277
1301
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1302
|
+
case 7:
|
|
1303
|
+
connectionRecord = _g.sent();
|
|
1304
|
+
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
1305
|
+
_g.label = 8;
|
|
1281
1306
|
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1307
|
+
case 8:
|
|
1308
|
+
return [3
|
|
1309
|
+
/*break*/
|
|
1310
|
+
, 5];
|
|
1285
1311
|
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
if (t[0] & 1) throw t[1];
|
|
1291
|
-
return t[1];
|
|
1292
|
-
},
|
|
1293
|
-
trys: [],
|
|
1294
|
-
ops: []
|
|
1295
|
-
},
|
|
1296
|
-
f,
|
|
1297
|
-
y,
|
|
1298
|
-
t,
|
|
1299
|
-
g;
|
|
1300
|
-
return g = {
|
|
1301
|
-
next: verb(0),
|
|
1302
|
-
"throw": verb(1),
|
|
1303
|
-
"return": verb(2)
|
|
1304
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
1305
|
-
return this;
|
|
1306
|
-
}), g;
|
|
1312
|
+
case 9:
|
|
1313
|
+
return [3
|
|
1314
|
+
/*break*/
|
|
1315
|
+
, 16];
|
|
1307
1316
|
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1317
|
+
case 10:
|
|
1318
|
+
e_3_1 = _g.sent();
|
|
1319
|
+
e_3 = {
|
|
1320
|
+
error: e_3_1
|
|
1321
|
+
};
|
|
1322
|
+
return [3
|
|
1323
|
+
/*break*/
|
|
1324
|
+
, 16];
|
|
1313
1325
|
|
|
1314
|
-
|
|
1315
|
-
|
|
1326
|
+
case 11:
|
|
1327
|
+
_g.trys.push([11,, 14, 15]);
|
|
1316
1328
|
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1329
|
+
if (!(records_1_1 && !records_1_1.done && (_b = records_1["return"]))) return [3
|
|
1330
|
+
/*break*/
|
|
1331
|
+
, 13];
|
|
1332
|
+
return [4
|
|
1333
|
+
/*yield*/
|
|
1334
|
+
, _b.call(records_1)];
|
|
1321
1335
|
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
case 1:
|
|
1325
|
-
t = op;
|
|
1326
|
-
break;
|
|
1336
|
+
case 12:
|
|
1337
|
+
_g.sent();
|
|
1327
1338
|
|
|
1328
|
-
|
|
1329
|
-
_.label++;
|
|
1330
|
-
return {
|
|
1331
|
-
value: op[1],
|
|
1332
|
-
done: false
|
|
1333
|
-
};
|
|
1339
|
+
_g.label = 13;
|
|
1334
1340
|
|
|
1335
|
-
case
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
continue;
|
|
1341
|
+
case 13:
|
|
1342
|
+
return [3
|
|
1343
|
+
/*break*/
|
|
1344
|
+
, 15];
|
|
1340
1345
|
|
|
1341
|
-
case
|
|
1342
|
-
|
|
1346
|
+
case 14:
|
|
1347
|
+
if (e_3) throw e_3.error;
|
|
1348
|
+
return [7
|
|
1349
|
+
/*endfinally*/
|
|
1350
|
+
];
|
|
1343
1351
|
|
|
1344
|
-
|
|
1352
|
+
case 15:
|
|
1353
|
+
return [7
|
|
1354
|
+
/*endfinally*/
|
|
1355
|
+
];
|
|
1345
1356
|
|
|
1346
|
-
|
|
1357
|
+
case 16:
|
|
1358
|
+
return [3
|
|
1359
|
+
/*break*/
|
|
1360
|
+
, 32];
|
|
1347
1361
|
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
_ = 0;
|
|
1351
|
-
continue;
|
|
1352
|
-
}
|
|
1362
|
+
case 17:
|
|
1363
|
+
_g.trys.push([17, 23, 24, 29]);
|
|
1353
1364
|
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
break;
|
|
1357
|
-
}
|
|
1365
|
+
records_2 = __asyncValues(records);
|
|
1366
|
+
_g.label = 18;
|
|
1358
1367
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
}
|
|
1368
|
+
case 18:
|
|
1369
|
+
return [4
|
|
1370
|
+
/*yield*/
|
|
1371
|
+
, records_2.next()];
|
|
1364
1372
|
|
|
1365
|
-
|
|
1366
|
-
|
|
1373
|
+
case 19:
|
|
1374
|
+
if (!(records_2_1 = _g.sent(), !records_2_1.done)) return [3
|
|
1375
|
+
/*break*/
|
|
1376
|
+
, 22];
|
|
1377
|
+
recordItem = records_2_1.value;
|
|
1378
|
+
if (!recordItem[targetName]) return [3
|
|
1379
|
+
/*break*/
|
|
1380
|
+
, 21];
|
|
1381
|
+
_f = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
|
|
1382
|
+
return [4
|
|
1383
|
+
/*yield*/
|
|
1384
|
+
, this.db.get(queryStatement, params)];
|
|
1367
1385
|
|
|
1368
|
-
|
|
1386
|
+
case 20:
|
|
1387
|
+
connectionRecord = _g.sent();
|
|
1388
|
+
recordItem[fieldName] = connectionRecord && this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
1389
|
+
delete recordItem[targetName];
|
|
1390
|
+
_g.label = 21;
|
|
1369
1391
|
|
|
1370
|
-
|
|
1371
|
-
|
|
1392
|
+
case 21:
|
|
1393
|
+
return [3
|
|
1394
|
+
/*break*/
|
|
1395
|
+
, 18];
|
|
1372
1396
|
|
|
1373
|
-
|
|
1397
|
+
case 22:
|
|
1398
|
+
return [3
|
|
1399
|
+
/*break*/
|
|
1400
|
+
, 29];
|
|
1374
1401
|
|
|
1375
|
-
|
|
1402
|
+
case 23:
|
|
1403
|
+
e_4_1 = _g.sent();
|
|
1404
|
+
e_4 = {
|
|
1405
|
+
error: e_4_1
|
|
1406
|
+
};
|
|
1407
|
+
return [3
|
|
1408
|
+
/*break*/
|
|
1409
|
+
, 29];
|
|
1376
1410
|
|
|
1377
|
-
|
|
1378
|
-
|
|
1411
|
+
case 24:
|
|
1412
|
+
_g.trys.push([24,, 27, 28]);
|
|
1379
1413
|
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
}
|
|
1387
|
-
}
|
|
1414
|
+
if (!(records_2_1 && !records_2_1.done && (_c = records_2["return"]))) return [3
|
|
1415
|
+
/*break*/
|
|
1416
|
+
, 26];
|
|
1417
|
+
return [4
|
|
1418
|
+
/*yield*/
|
|
1419
|
+
, _c.call(records_2)];
|
|
1388
1420
|
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
value: op[0] ? op[1] : void 0,
|
|
1392
|
-
done: true
|
|
1393
|
-
};
|
|
1394
|
-
}
|
|
1395
|
-
};
|
|
1421
|
+
case 25:
|
|
1422
|
+
_g.sent();
|
|
1396
1423
|
|
|
1397
|
-
|
|
1398
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
1399
|
-
if (!m) return o;
|
|
1400
|
-
var i = m.call(o),
|
|
1401
|
-
r,
|
|
1402
|
-
ar = [],
|
|
1403
|
-
e;
|
|
1424
|
+
_g.label = 26;
|
|
1404
1425
|
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
} catch (error) {
|
|
1410
|
-
e = {
|
|
1411
|
-
error: error
|
|
1412
|
-
};
|
|
1413
|
-
} finally {
|
|
1414
|
-
try {
|
|
1415
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
1416
|
-
} finally {
|
|
1417
|
-
if (e) throw e.error;
|
|
1418
|
-
}
|
|
1419
|
-
}
|
|
1426
|
+
case 26:
|
|
1427
|
+
return [3
|
|
1428
|
+
/*break*/
|
|
1429
|
+
, 28];
|
|
1420
1430
|
|
|
1421
|
-
|
|
1422
|
-
|
|
1431
|
+
case 27:
|
|
1432
|
+
if (e_4) throw e_4.error;
|
|
1433
|
+
return [7
|
|
1434
|
+
/*endfinally*/
|
|
1435
|
+
];
|
|
1423
1436
|
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
value: o && o[i++],
|
|
1434
|
-
done: !o
|
|
1435
|
-
};
|
|
1436
|
-
}
|
|
1437
|
-
};
|
|
1438
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
1439
|
-
};
|
|
1437
|
+
case 28:
|
|
1438
|
+
return [7
|
|
1439
|
+
/*endfinally*/
|
|
1440
|
+
];
|
|
1441
|
+
|
|
1442
|
+
case 29:
|
|
1443
|
+
return [3
|
|
1444
|
+
/*break*/
|
|
1445
|
+
, 32];
|
|
1440
1446
|
|
|
1447
|
+
case 30:
|
|
1448
|
+
// TODO: Lazy loading
|
|
1449
|
+
return [3
|
|
1450
|
+
/*break*/
|
|
1451
|
+
, 32];
|
|
1441
1452
|
|
|
1453
|
+
case 31:
|
|
1454
|
+
_ = relationType;
|
|
1455
|
+
throw new Error("invalid relation type " + relationType);
|
|
1442
1456
|
|
|
1443
|
-
|
|
1444
|
-
|
|
1457
|
+
case 32:
|
|
1458
|
+
return [3
|
|
1459
|
+
/*break*/
|
|
1460
|
+
, 2];
|
|
1445
1461
|
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1462
|
+
case 33:
|
|
1463
|
+
return [3
|
|
1464
|
+
/*break*/
|
|
1465
|
+
, 40];
|
|
1449
1466
|
|
|
1450
|
-
|
|
1451
|
-
|
|
1467
|
+
case 34:
|
|
1468
|
+
e_2_1 = _g.sent();
|
|
1469
|
+
e_2 = {
|
|
1470
|
+
error: e_2_1
|
|
1471
|
+
};
|
|
1472
|
+
return [3
|
|
1473
|
+
/*break*/
|
|
1474
|
+
, 40];
|
|
1452
1475
|
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
/*
|
|
1476
|
+
case 35:
|
|
1477
|
+
_g.trys.push([35,, 38, 39]);
|
|
1456
1478
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1479
|
+
if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1["return"]))) return [3
|
|
1480
|
+
/*break*/
|
|
1481
|
+
, 37];
|
|
1482
|
+
return [4
|
|
1483
|
+
/*yield*/
|
|
1484
|
+
, _a.call(relations_1)];
|
|
1460
1485
|
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
get the result of an `executeSql` command inside of a transaction
|
|
1464
|
-
(see the batchQuery method below)
|
|
1486
|
+
case 36:
|
|
1487
|
+
_g.sent();
|
|
1465
1488
|
|
|
1466
|
-
|
|
1489
|
+
_g.label = 37;
|
|
1467
1490
|
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1491
|
+
case 37:
|
|
1492
|
+
return [3
|
|
1493
|
+
/*break*/
|
|
1494
|
+
, 39];
|
|
1472
1495
|
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1496
|
+
case 38:
|
|
1497
|
+
if (e_2) throw e_2.error;
|
|
1498
|
+
return [7
|
|
1499
|
+
/*endfinally*/
|
|
1500
|
+
];
|
|
1476
1501
|
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
return [4
|
|
1482
|
-
/*yield*/
|
|
1483
|
-
, react_native_sqlite_storage__WEBPACK_IMPORTED_MODULE_0___default.a.openDatabase(DB_NAME, DB_VERSION, DB_DISPLAYNAME, DB_SIZE)];
|
|
1502
|
+
case 39:
|
|
1503
|
+
return [7
|
|
1504
|
+
/*endfinally*/
|
|
1505
|
+
];
|
|
1484
1506
|
|
|
1485
|
-
case
|
|
1486
|
-
_a.db = _b.sent();
|
|
1507
|
+
case 40:
|
|
1487
1508
|
return [2
|
|
1488
1509
|
/*return*/
|
|
1489
|
-
|
|
1510
|
+
, records.map(function (record) {
|
|
1511
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
1512
|
+
})];
|
|
1490
1513
|
}
|
|
1491
1514
|
});
|
|
1492
1515
|
});
|
|
1493
1516
|
};
|
|
1494
1517
|
|
|
1495
|
-
|
|
1518
|
+
CommonSQLiteAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
|
|
1496
1519
|
return __awaiter(this, void 0, void 0, function () {
|
|
1497
|
-
|
|
1498
|
-
switch (_a.label) {
|
|
1499
|
-
case 0:
|
|
1500
|
-
return [4
|
|
1501
|
-
/*yield*/
|
|
1502
|
-
, this.executeStatements(statements)];
|
|
1520
|
+
var tableName, namespaceName, predicates, sortPredicates, limit, page, queryById, records;
|
|
1503
1521
|
|
|
1504
|
-
|
|
1505
|
-
return [2
|
|
1506
|
-
/*return*/
|
|
1507
|
-
, _a.sent()];
|
|
1508
|
-
}
|
|
1509
|
-
});
|
|
1510
|
-
});
|
|
1511
|
-
};
|
|
1522
|
+
var _this = this;
|
|
1512
1523
|
|
|
1513
|
-
SQLiteDatabase.prototype.clear = function () {
|
|
1514
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1515
1524
|
return __generator(this, function (_a) {
|
|
1516
1525
|
switch (_a.label) {
|
|
1517
1526
|
case 0:
|
|
1527
|
+
tableName = modelConstructor.name;
|
|
1528
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1529
|
+
predicates = predicate && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(predicate);
|
|
1530
|
+
sortPredicates = pagination && pagination.sort && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelSortPredicateCreator"].getPredicates(pagination.sort);
|
|
1531
|
+
limit = pagination && pagination.limit;
|
|
1532
|
+
page = limit && pagination.page;
|
|
1533
|
+
queryById = predicates && this.idFromPredicate(predicates);
|
|
1518
1534
|
return [4
|
|
1519
1535
|
/*yield*/
|
|
1520
|
-
,
|
|
1536
|
+
, function () {
|
|
1537
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
1538
|
+
var record, _a, queryStatement, params;
|
|
1521
1539
|
|
|
1522
|
-
|
|
1523
|
-
|
|
1540
|
+
return __generator(this, function (_b) {
|
|
1541
|
+
switch (_b.label) {
|
|
1542
|
+
case 0:
|
|
1543
|
+
if (!queryById) return [3
|
|
1544
|
+
/*break*/
|
|
1545
|
+
, 2];
|
|
1546
|
+
return [4
|
|
1547
|
+
/*yield*/
|
|
1548
|
+
, this.getById(tableName, queryById)];
|
|
1524
1549
|
|
|
1525
|
-
|
|
1550
|
+
case 1:
|
|
1551
|
+
record = _b.sent();
|
|
1552
|
+
return [2
|
|
1553
|
+
/*return*/
|
|
1554
|
+
, record ? [record] : []];
|
|
1555
|
+
|
|
1556
|
+
case 2:
|
|
1557
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryAllStatement"])(tableName, predicates, sortPredicates, limit, page), 2), queryStatement = _a[0], params = _a[1];
|
|
1558
|
+
return [4
|
|
1559
|
+
/*yield*/
|
|
1560
|
+
, this.db.getAll(queryStatement, params)];
|
|
1561
|
+
|
|
1562
|
+
case 3:
|
|
1563
|
+
return [2
|
|
1564
|
+
/*return*/
|
|
1565
|
+
, _b.sent()];
|
|
1566
|
+
}
|
|
1567
|
+
});
|
|
1568
|
+
});
|
|
1569
|
+
}()];
|
|
1570
|
+
|
|
1571
|
+
case 1:
|
|
1572
|
+
records = _a.sent();
|
|
1526
1573
|
return [4
|
|
1527
1574
|
/*yield*/
|
|
1528
|
-
,
|
|
1575
|
+
, this.load(namespaceName, modelConstructor.name, records)];
|
|
1529
1576
|
|
|
1530
1577
|
case 2:
|
|
1531
|
-
_a.sent();
|
|
1532
|
-
|
|
1533
|
-
logger.debug('Database deleted');
|
|
1534
1578
|
return [2
|
|
1535
1579
|
/*return*/
|
|
1536
|
-
];
|
|
1580
|
+
, _a.sent()];
|
|
1537
1581
|
}
|
|
1538
1582
|
});
|
|
1539
1583
|
});
|
|
1540
1584
|
};
|
|
1541
1585
|
|
|
1542
|
-
|
|
1586
|
+
CommonSQLiteAdapter.prototype.getById = function (tableName, id) {
|
|
1543
1587
|
return __awaiter(this, void 0, void 0, function () {
|
|
1544
|
-
var _a,
|
|
1588
|
+
var _a, queryStatement, params, record;
|
|
1545
1589
|
|
|
1546
1590
|
return __generator(this, function (_b) {
|
|
1547
1591
|
switch (_b.label) {
|
|
1548
1592
|
case 0:
|
|
1593
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1549
1594
|
return [4
|
|
1550
1595
|
/*yield*/
|
|
1551
|
-
, this.db.
|
|
1596
|
+
, this.db.get(queryStatement, params)];
|
|
1552
1597
|
|
|
1553
1598
|
case 1:
|
|
1554
|
-
|
|
1555
|
-
result = resultSet && resultSet.rows && resultSet.rows.length && resultSet.rows.raw && resultSet.rows.raw();
|
|
1599
|
+
record = _b.sent();
|
|
1556
1600
|
return [2
|
|
1557
1601
|
/*return*/
|
|
1558
|
-
,
|
|
1602
|
+
, record];
|
|
1559
1603
|
}
|
|
1560
1604
|
});
|
|
1561
1605
|
});
|
|
1562
1606
|
};
|
|
1563
1607
|
|
|
1564
|
-
|
|
1608
|
+
CommonSQLiteAdapter.prototype.idFromPredicate = function (predicates) {
|
|
1609
|
+
var predicateObjs = predicates.predicates;
|
|
1610
|
+
var idPredicate = predicateObjs.length === 1 && predicateObjs.find(function (p) {
|
|
1611
|
+
return Object(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["isPredicateObj"])(p) && p.field === 'id' && p.operator === 'eq';
|
|
1612
|
+
});
|
|
1613
|
+
return idPredicate && idPredicate.operand;
|
|
1614
|
+
};
|
|
1615
|
+
|
|
1616
|
+
CommonSQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
1617
|
+
if (firstOrLast === void 0) {
|
|
1618
|
+
firstOrLast = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["QueryOne"].FIRST;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1565
1621
|
return __awaiter(this, void 0, void 0, function () {
|
|
1566
|
-
var _a,
|
|
1622
|
+
var tableName, _a, queryStatement, params, result, modelInstance;
|
|
1567
1623
|
|
|
1568
1624
|
return __generator(this, function (_b) {
|
|
1569
1625
|
switch (_b.label) {
|
|
1570
1626
|
case 0:
|
|
1627
|
+
tableName = modelConstructor.name;
|
|
1628
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryOneStatement"])(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1571
1629
|
return [4
|
|
1572
1630
|
/*yield*/
|
|
1573
|
-
, this.db.
|
|
1631
|
+
, this.db.get(queryStatement, params)];
|
|
1574
1632
|
|
|
1575
1633
|
case 1:
|
|
1576
|
-
|
|
1577
|
-
|
|
1634
|
+
result = _b.sent();
|
|
1635
|
+
modelInstance = result && this.modelInstanceCreator(modelConstructor, result);
|
|
1578
1636
|
return [2
|
|
1579
1637
|
/*return*/
|
|
1580
|
-
,
|
|
1638
|
+
, modelInstance];
|
|
1581
1639
|
}
|
|
1582
1640
|
});
|
|
1583
1641
|
});
|
|
1584
|
-
};
|
|
1642
|
+
}; // Currently does not cascade
|
|
1643
|
+
// TODO: use FKs in relations and have `ON DELETE CASCADE` set
|
|
1644
|
+
// For Has Many and Has One relations to have SQL handle cascades automatically
|
|
1585
1645
|
|
|
1586
|
-
|
|
1646
|
+
|
|
1647
|
+
CommonSQLiteAdapter.prototype["delete"] = function (modelOrModelConstructor, condition) {
|
|
1587
1648
|
return __awaiter(this, void 0, void 0, function () {
|
|
1588
|
-
|
|
1589
|
-
|
|
1649
|
+
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;
|
|
1650
|
+
|
|
1651
|
+
return __generator(this, function (_d) {
|
|
1652
|
+
switch (_d.label) {
|
|
1590
1653
|
case 0:
|
|
1654
|
+
if (!isModelConstructor(modelOrModelConstructor)) return [3
|
|
1655
|
+
/*break*/
|
|
1656
|
+
, 3];
|
|
1657
|
+
modelConstructor = modelOrModelConstructor;
|
|
1658
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
1659
|
+
tableName = modelConstructor.name;
|
|
1660
|
+
predicates = condition && _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(condition);
|
|
1661
|
+
queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryAllStatement"])(tableName, predicates);
|
|
1662
|
+
deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByPredicateStatement"])(tableName, predicates);
|
|
1591
1663
|
return [4
|
|
1592
1664
|
/*yield*/
|
|
1593
|
-
, this.db.
|
|
1665
|
+
, this.db.selectAndDelete(queryStatement, deleteStatement)];
|
|
1594
1666
|
|
|
1595
1667
|
case 1:
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
return [2
|
|
1599
|
-
/*return*/
|
|
1600
|
-
];
|
|
1601
|
-
}
|
|
1602
|
-
});
|
|
1603
|
-
});
|
|
1604
|
-
};
|
|
1605
|
-
|
|
1606
|
-
SQLiteDatabase.prototype.batchQuery = function (queryStatements) {
|
|
1607
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1608
|
-
var results;
|
|
1609
|
-
return __generator(this, function (_a) {
|
|
1610
|
-
switch (_a.label) {
|
|
1611
|
-
case 0:
|
|
1612
|
-
results = [];
|
|
1668
|
+
models = _d.sent();
|
|
1613
1669
|
return [4
|
|
1614
1670
|
/*yield*/
|
|
1615
|
-
, this.
|
|
1616
|
-
var e_1, _a;
|
|
1617
|
-
|
|
1618
|
-
try {
|
|
1619
|
-
for (var queryStatements_1 = __values(queryStatements), queryStatements_1_1 = queryStatements_1.next(); !queryStatements_1_1.done; queryStatements_1_1 = queryStatements_1.next()) {
|
|
1620
|
-
var _b = __read(queryStatements_1_1.value, 2),
|
|
1621
|
-
statement = _b[0],
|
|
1622
|
-
params = _b[1];
|
|
1623
|
-
|
|
1624
|
-
tx.executeSql(statement, params, function (_tx, res) {
|
|
1625
|
-
results.push(res.rows.raw()[0]);
|
|
1626
|
-
}, logger.warn);
|
|
1627
|
-
}
|
|
1628
|
-
} catch (e_1_1) {
|
|
1629
|
-
e_1 = {
|
|
1630
|
-
error: e_1_1
|
|
1631
|
-
};
|
|
1632
|
-
} finally {
|
|
1633
|
-
try {
|
|
1634
|
-
if (queryStatements_1_1 && !queryStatements_1_1.done && (_a = queryStatements_1["return"])) _a.call(queryStatements_1);
|
|
1635
|
-
} finally {
|
|
1636
|
-
if (e_1) throw e_1.error;
|
|
1637
|
-
}
|
|
1638
|
-
}
|
|
1639
|
-
})];
|
|
1640
|
-
|
|
1641
|
-
case 1:
|
|
1642
|
-
_a.sent();
|
|
1671
|
+
, this.load(namespaceName, modelConstructor.name, models)];
|
|
1643
1672
|
|
|
1673
|
+
case 2:
|
|
1674
|
+
modelInstances = _d.sent();
|
|
1644
1675
|
return [2
|
|
1645
1676
|
/*return*/
|
|
1646
|
-
,
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
case 0:
|
|
1677
|
+
, [modelInstances, modelInstances]];
|
|
1678
|
+
|
|
1679
|
+
case 3:
|
|
1680
|
+
model = modelOrModelConstructor;
|
|
1681
|
+
modelConstructor = Object.getPrototypeOf(model).constructor;
|
|
1682
|
+
tableName = modelConstructor.name;
|
|
1683
|
+
if (!condition) return [3
|
|
1684
|
+
/*break*/
|
|
1685
|
+
, 6];
|
|
1686
|
+
_a = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
1657
1687
|
return [4
|
|
1658
1688
|
/*yield*/
|
|
1659
|
-
, this.db.
|
|
1660
|
-
var e_2, _a, e_3, _b;
|
|
1689
|
+
, this.db.get(queryStatement, params)];
|
|
1661
1690
|
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
var _c = __read(saveStatements_1_1.value, 2),
|
|
1665
|
-
statement = _c[0],
|
|
1666
|
-
params = _c[1];
|
|
1691
|
+
case 4:
|
|
1692
|
+
fromDB = _d.sent();
|
|
1667
1693
|
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
} finally {
|
|
1678
|
-
if (e_2) throw e_2.error;
|
|
1679
|
-
}
|
|
1680
|
-
}
|
|
1694
|
+
if (fromDB === undefined) {
|
|
1695
|
+
msg = 'Model instance not found in storage';
|
|
1696
|
+
logger.warn(msg, {
|
|
1697
|
+
model: model
|
|
1698
|
+
});
|
|
1699
|
+
return [2
|
|
1700
|
+
/*return*/
|
|
1701
|
+
, [[model], []]];
|
|
1702
|
+
}
|
|
1681
1703
|
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
var _d = __read(deleteStatements_1_1.value, 2),
|
|
1686
|
-
statement = _d[0],
|
|
1687
|
-
params = _d[1];
|
|
1704
|
+
predicates = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["ModelPredicateCreator"].getPredicates(condition);
|
|
1705
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
1706
|
+
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
1688
1707
|
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
if (deleteStatements_1_1 && !deleteStatements_1_1.done && (_b = deleteStatements_1["return"])) _b.call(deleteStatements_1);
|
|
1698
|
-
} finally {
|
|
1699
|
-
if (e_3) throw e_3.error;
|
|
1700
|
-
}
|
|
1701
|
-
}
|
|
1702
|
-
}
|
|
1703
|
-
})];
|
|
1708
|
+
if (!isValid) {
|
|
1709
|
+
msg = 'Conditional update failed';
|
|
1710
|
+
logger.error(msg, {
|
|
1711
|
+
model: fromDB,
|
|
1712
|
+
condition: predicateObjs
|
|
1713
|
+
});
|
|
1714
|
+
throw new Error(msg);
|
|
1715
|
+
}
|
|
1704
1716
|
|
|
1705
|
-
|
|
1706
|
-
|
|
1717
|
+
_b = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _b[0], deleteParams = _b[1];
|
|
1718
|
+
return [4
|
|
1719
|
+
/*yield*/
|
|
1720
|
+
, this.db.save(deleteStatement, deleteParams)];
|
|
1721
|
+
|
|
1722
|
+
case 5:
|
|
1723
|
+
_d.sent();
|
|
1707
1724
|
|
|
1708
1725
|
return [2
|
|
1709
1726
|
/*return*/
|
|
1710
|
-
];
|
|
1711
|
-
}
|
|
1712
|
-
});
|
|
1713
|
-
});
|
|
1714
|
-
};
|
|
1715
|
-
|
|
1716
|
-
SQLiteDatabase.prototype.selectAndDelete = function (query, _delete) {
|
|
1717
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1718
|
-
var results, _a, queryStatement, queryParams, _b, deleteStatement, deleteParams;
|
|
1727
|
+
, [[model], [model]]];
|
|
1719
1728
|
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
case 0:
|
|
1723
|
-
results = [];
|
|
1724
|
-
_a = __read(query, 2), queryStatement = _a[0], queryParams = _a[1];
|
|
1725
|
-
_b = __read(_delete, 2), deleteStatement = _b[0], deleteParams = _b[1];
|
|
1729
|
+
case 6:
|
|
1730
|
+
_c = __read(Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(model.id, tableName), 2), deleteStatement = _c[0], params = _c[1];
|
|
1726
1731
|
return [4
|
|
1727
1732
|
/*yield*/
|
|
1728
|
-
, this.db.
|
|
1729
|
-
tx.executeSql(queryStatement, queryParams, function (_tx, res) {
|
|
1730
|
-
results = res.rows.raw();
|
|
1731
|
-
}, logger.warn);
|
|
1732
|
-
tx.executeSql(deleteStatement, deleteParams, function () {}, logger.warn);
|
|
1733
|
-
})];
|
|
1733
|
+
, this.db.save(deleteStatement, params)];
|
|
1734
1734
|
|
|
1735
|
-
case
|
|
1736
|
-
|
|
1735
|
+
case 7:
|
|
1736
|
+
_d.sent();
|
|
1737
1737
|
|
|
1738
1738
|
return [2
|
|
1739
1739
|
/*return*/
|
|
1740
|
-
,
|
|
1740
|
+
, [[model], [model]]];
|
|
1741
1741
|
}
|
|
1742
1742
|
});
|
|
1743
1743
|
});
|
|
1744
1744
|
};
|
|
1745
1745
|
|
|
1746
|
-
|
|
1746
|
+
CommonSQLiteAdapter.prototype.batchSave = function (modelConstructor, items) {
|
|
1747
1747
|
return __awaiter(this, void 0, void 0, function () {
|
|
1748
|
-
|
|
1749
|
-
|
|
1748
|
+
var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
|
|
1749
|
+
|
|
1750
|
+
var e_5, _a;
|
|
1751
|
+
|
|
1752
|
+
return __generator(this, function (_b) {
|
|
1753
|
+
switch (_b.label) {
|
|
1750
1754
|
case 0:
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
+
tableName = modelConstructor.name;
|
|
1756
|
+
result = [];
|
|
1757
|
+
itemsToSave = [];
|
|
1758
|
+
queryStatements = new Set();
|
|
1759
|
+
deleteStatements = new Set();
|
|
1760
|
+
saveStatements = new Set();
|
|
1761
|
+
|
|
1762
|
+
_loop_1 = function _loop_1(item) {
|
|
1763
|
+
var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
|
|
1764
|
+
var id = item.id,
|
|
1765
|
+
_deleted = item._deleted;
|
|
1766
|
+
var instance = connectedModels.find(function (_a) {
|
|
1767
|
+
var instance = _a.instance;
|
|
1768
|
+
return instance.id === id;
|
|
1769
|
+
}).instance;
|
|
1770
|
+
|
|
1771
|
+
if (_deleted) {
|
|
1772
|
+
// create the delete statements right away
|
|
1773
|
+
var deleteStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["deleteByIdStatement"])(instance.id, tableName);
|
|
1774
|
+
deleteStatements.add(deleteStatement);
|
|
1775
|
+
result.push([item, _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].DELETE]);
|
|
1776
|
+
} else {
|
|
1777
|
+
// query statements for the saves at first
|
|
1778
|
+
var queryStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["queryByIdStatement"])(id, tableName);
|
|
1779
|
+
queryStatements.add(queryStatement); // combination of insert and update items
|
|
1780
|
+
|
|
1781
|
+
itemsToSave.push(instance);
|
|
1782
|
+
}
|
|
1783
|
+
};
|
|
1784
|
+
|
|
1785
|
+
this_1 = this;
|
|
1786
|
+
|
|
1787
|
+
try {
|
|
1788
|
+
for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
1789
|
+
item = items_1_1.value;
|
|
1755
1790
|
|
|
1791
|
+
_loop_1(item);
|
|
1792
|
+
}
|
|
1793
|
+
} catch (e_5_1) {
|
|
1794
|
+
e_5 = {
|
|
1795
|
+
error: e_5_1
|
|
1796
|
+
};
|
|
1797
|
+
} finally {
|
|
1756
1798
|
try {
|
|
1757
|
-
|
|
1758
|
-
var statement = statements_1_1.value;
|
|
1759
|
-
tx.executeSql(statement);
|
|
1760
|
-
}
|
|
1761
|
-
} catch (e_4_1) {
|
|
1762
|
-
e_4 = {
|
|
1763
|
-
error: e_4_1
|
|
1764
|
-
};
|
|
1799
|
+
if (items_1_1 && !items_1_1.done && (_a = items_1["return"])) _a.call(items_1);
|
|
1765
1800
|
} finally {
|
|
1766
|
-
|
|
1767
|
-
if (statements_1_1 && !statements_1_1.done && (_a = statements_1["return"])) _a.call(statements_1);
|
|
1768
|
-
} finally {
|
|
1769
|
-
if (e_4) throw e_4.error;
|
|
1770
|
-
}
|
|
1801
|
+
if (e_5) throw e_5.error;
|
|
1771
1802
|
}
|
|
1772
|
-
}
|
|
1773
|
-
|
|
1774
|
-
case 1:
|
|
1775
|
-
return [2
|
|
1776
|
-
/*return*/
|
|
1777
|
-
, _a.sent()];
|
|
1778
|
-
}
|
|
1779
|
-
});
|
|
1780
|
-
});
|
|
1781
|
-
};
|
|
1803
|
+
}
|
|
1782
1804
|
|
|
1783
|
-
SQLiteDatabase.prototype.closeDB = function () {
|
|
1784
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1785
|
-
return __generator(this, function (_a) {
|
|
1786
|
-
switch (_a.label) {
|
|
1787
|
-
case 0:
|
|
1788
|
-
if (!this.db) return [3
|
|
1789
|
-
/*break*/
|
|
1790
|
-
, 2];
|
|
1791
|
-
logger.debug('Closing Database');
|
|
1792
1805
|
return [4
|
|
1793
1806
|
/*yield*/
|
|
1794
|
-
, this.db.
|
|
1807
|
+
, this.db.batchQuery(queryStatements)];
|
|
1795
1808
|
|
|
1796
1809
|
case 1:
|
|
1797
|
-
|
|
1810
|
+
queryResponses = _b.sent();
|
|
1811
|
+
queryResponses.forEach(function (response, idx) {
|
|
1812
|
+
if (response === undefined) {
|
|
1813
|
+
var insertStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelInsertStatement"])(itemsToSave[idx], tableName);
|
|
1814
|
+
saveStatements.add(insertStatement);
|
|
1815
|
+
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].INSERT]);
|
|
1816
|
+
} else {
|
|
1817
|
+
var updateStatement = Object(_common_SQLiteUtils__WEBPACK_IMPORTED_MODULE_1__["modelUpdateStatement"])(itemsToSave[idx], tableName);
|
|
1818
|
+
saveStatements.add(updateStatement);
|
|
1819
|
+
result.push([itemsToSave[idx], _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_2__["OpType"].UPDATE]);
|
|
1820
|
+
}
|
|
1821
|
+
}); // perform all of the insert/update/delete operations in a single transaction
|
|
1798
1822
|
|
|
1799
|
-
|
|
1800
|
-
|
|
1823
|
+
return [4
|
|
1824
|
+
/*yield*/
|
|
1825
|
+
, this.db.batchSave(saveStatements, deleteStatements)];
|
|
1801
1826
|
|
|
1802
1827
|
case 2:
|
|
1828
|
+
// perform all of the insert/update/delete operations in a single transaction
|
|
1829
|
+
_b.sent();
|
|
1830
|
+
|
|
1803
1831
|
return [2
|
|
1804
1832
|
/*return*/
|
|
1805
|
-
];
|
|
1833
|
+
, result];
|
|
1806
1834
|
}
|
|
1807
1835
|
});
|
|
1808
1836
|
});
|
|
1809
1837
|
};
|
|
1810
1838
|
|
|
1811
|
-
return
|
|
1839
|
+
return CommonSQLiteAdapter;
|
|
1812
1840
|
}();
|
|
1813
1841
|
|
|
1814
|
-
|
|
1842
|
+
|
|
1815
1843
|
|
|
1816
1844
|
/***/ }),
|
|
1817
1845
|
|
|
1818
|
-
/***/ "./lib-esm/
|
|
1819
|
-
|
|
1820
|
-
!*** ./lib-esm/
|
|
1821
|
-
|
|
1822
|
-
/*! exports provided: generateSchemaStatements, implicitAuthFieldsForModel, modelCreateTableStatement, modelInsertStatement, modelUpdateStatement, queryByIdStatement, whereClauseFromPredicate, orderByClauseFromSort, limitClauseFromPagination, queryAllStatement, queryOneStatement, deleteByIdStatement, deleteByPredicateStatement */
|
|
1846
|
+
/***/ "./lib-esm/common/SQLiteUtils.js":
|
|
1847
|
+
/*!***************************************!*\
|
|
1848
|
+
!*** ./lib-esm/common/SQLiteUtils.js ***!
|
|
1849
|
+
\***************************************/
|
|
1850
|
+
/*! exports provided: getSQLiteType, generateSchemaStatements, implicitAuthFieldsForModel, modelCreateTableStatement, modelInsertStatement, modelUpdateStatement, queryByIdStatement, whereClauseFromPredicate, orderByClauseFromSort, limitClauseFromPagination, queryAllStatement, queryOneStatement, deleteByIdStatement, deleteByPredicateStatement */
|
|
1823
1851
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1824
1852
|
|
|
1825
1853
|
"use strict";
|
|
1826
1854
|
__webpack_require__.r(__webpack_exports__);
|
|
1855
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSQLiteType", function() { return getSQLiteType; });
|
|
1827
1856
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateSchemaStatements", function() { return generateSchemaStatements; });
|
|
1828
1857
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "implicitAuthFieldsForModel", function() { return implicitAuthFieldsForModel; });
|
|
1829
1858
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "modelCreateTableStatement", function() { return modelCreateTableStatement; });
|
|
@@ -1839,7 +1868,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1839
1868
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteByPredicateStatement", function() { return deleteByPredicateStatement; });
|
|
1840
1869
|
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/datastore */ "@aws-amplify/datastore");
|
|
1841
1870
|
/* harmony import */ var _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__);
|
|
1842
|
-
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ "./lib-esm/SQLiteAdapter/types.js");
|
|
1843
1871
|
function _typeof(obj) {
|
|
1844
1872
|
"@babel/helpers - typeof";
|
|
1845
1873
|
|
|
@@ -1903,7 +1931,6 @@ var __values = undefined && undefined.__values || function (o) {
|
|
|
1903
1931
|
};
|
|
1904
1932
|
|
|
1905
1933
|
|
|
1906
|
-
|
|
1907
1934
|
var USER = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].USER,
|
|
1908
1935
|
isNonModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].isNonModelConstructor,
|
|
1909
1936
|
isModelConstructor = _aws_amplify_datastore__WEBPACK_IMPORTED_MODULE_0__["utils"].isModelConstructor;
|
|
@@ -1957,6 +1984,33 @@ function prepareValueForDML(value) {
|
|
|
1957
1984
|
return "" + value;
|
|
1958
1985
|
}
|
|
1959
1986
|
|
|
1987
|
+
function getSQLiteType(scalar) {
|
|
1988
|
+
switch (scalar) {
|
|
1989
|
+
case 'Boolean':
|
|
1990
|
+
case 'Int':
|
|
1991
|
+
case 'AWSTimestamp':
|
|
1992
|
+
return 'INTEGER';
|
|
1993
|
+
|
|
1994
|
+
case 'ID':
|
|
1995
|
+
case 'String':
|
|
1996
|
+
case 'AWSDate':
|
|
1997
|
+
case 'AWSTime':
|
|
1998
|
+
case 'AWSDateTime':
|
|
1999
|
+
case 'AWSEmail':
|
|
2000
|
+
case 'AWSJSON':
|
|
2001
|
+
case 'AWSURL':
|
|
2002
|
+
case 'AWSPhone':
|
|
2003
|
+
case 'AWSIPAddress':
|
|
2004
|
+
return 'TEXT';
|
|
2005
|
+
|
|
2006
|
+
case 'Float':
|
|
2007
|
+
return 'REAL';
|
|
2008
|
+
|
|
2009
|
+
default:
|
|
2010
|
+
var _ = scalar;
|
|
2011
|
+
throw new Error("unknown type " + scalar);
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
1960
2014
|
function generateSchemaStatements(schema) {
|
|
1961
2015
|
return Object.keys(schema.namespaces).flatMap(function (namespaceName) {
|
|
1962
2016
|
var namespace = schema.namespaces[namespaceName];
|
|
@@ -2002,7 +2056,7 @@ function modelCreateTableStatement(model, userModel) {
|
|
|
2002
2056
|
return acc + '"id" PRIMARY KEY NOT NULL';
|
|
2003
2057
|
}
|
|
2004
2058
|
|
|
2005
|
-
var columnParam_1 = "\"" + field.name + "\" " +
|
|
2059
|
+
var columnParam_1 = "\"" + field.name + "\" " + getSQLiteType(field.type);
|
|
2006
2060
|
|
|
2007
2061
|
if (field.isRequired) {
|
|
2008
2062
|
columnParam_1 += ' NOT NULL';
|
|
@@ -2333,43 +2387,17 @@ function deleteByPredicateStatement(tableName, predicate) {
|
|
|
2333
2387
|
|
|
2334
2388
|
/***/ }),
|
|
2335
2389
|
|
|
2336
|
-
/***/ "./lib-esm/
|
|
2337
|
-
|
|
2338
|
-
!*** ./lib-esm/
|
|
2339
|
-
|
|
2340
|
-
/*! exports provided:
|
|
2390
|
+
/***/ "./lib-esm/common/constants.js":
|
|
2391
|
+
/*!*************************************!*\
|
|
2392
|
+
!*** ./lib-esm/common/constants.js ***!
|
|
2393
|
+
\*************************************/
|
|
2394
|
+
/*! exports provided: DB_NAME */
|
|
2341
2395
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2342
2396
|
|
|
2343
2397
|
"use strict";
|
|
2344
2398
|
__webpack_require__.r(__webpack_exports__);
|
|
2345
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
|
2346
|
-
|
|
2347
|
-
switch (scalar) {
|
|
2348
|
-
case 'Boolean':
|
|
2349
|
-
case 'Int':
|
|
2350
|
-
case 'AWSTimestamp':
|
|
2351
|
-
return 'INTEGER';
|
|
2352
|
-
|
|
2353
|
-
case 'ID':
|
|
2354
|
-
case 'String':
|
|
2355
|
-
case 'AWSDate':
|
|
2356
|
-
case 'AWSTime':
|
|
2357
|
-
case 'AWSDateTime':
|
|
2358
|
-
case 'AWSEmail':
|
|
2359
|
-
case 'AWSJSON':
|
|
2360
|
-
case 'AWSURL':
|
|
2361
|
-
case 'AWSPhone':
|
|
2362
|
-
case 'AWSIPAddress':
|
|
2363
|
-
return 'TEXT';
|
|
2364
|
-
|
|
2365
|
-
case 'Float':
|
|
2366
|
-
return 'REAL';
|
|
2367
|
-
|
|
2368
|
-
default:
|
|
2369
|
-
var _ = scalar;
|
|
2370
|
-
throw new Error("unknown type " + scalar);
|
|
2371
|
-
}
|
|
2372
|
-
}
|
|
2399
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DB_NAME", function() { return DB_NAME; });
|
|
2400
|
+
var DB_NAME = 'AmplifyDatastore';
|
|
2373
2401
|
|
|
2374
2402
|
/***/ }),
|
|
2375
2403
|
|