@aws-amplify/datastore-storage-adapter 1.2.3-webpack5.5 → 1.2.4-custom-pk.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/ExpoSQLiteAdapter/index.d.ts +1 -0
  3. package/ExpoSQLiteAdapter/index.js +7 -0
  4. package/SQLiteAdapter/index.d.ts +1 -0
  5. package/SQLiteAdapter/index.js +7 -0
  6. package/dist/aws-amplify-datastore-sqlite-adapter-expo.js +2509 -0
  7. package/dist/aws-amplify-datastore-sqlite-adapter-expo.js.map +1 -0
  8. package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js +2 -0
  9. package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js.map +1 -0
  10. package/dist/aws-amplify-datastore-storage-adapter.js +1227 -1158
  11. package/dist/aws-amplify-datastore-storage-adapter.js.map +1 -1
  12. package/dist/aws-amplify-datastore-storage-adapter.min.js +1 -1
  13. package/dist/aws-amplify-datastore-storage-adapter.min.js.map +1 -1
  14. package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
  15. package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +10 -0
  16. package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
  17. package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
  18. package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +362 -0
  19. package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
  20. package/lib/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
  21. package/lib/SQLiteAdapter/SQLiteAdapter.js +3 -580
  22. package/lib/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
  23. package/lib/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
  24. package/lib/SQLiteAdapter/SQLiteDatabase.js +46 -42
  25. package/lib/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
  26. package/lib/common/CommonSQLiteAdapter.d.ts +23 -0
  27. package/lib/common/CommonSQLiteAdapter.js +582 -0
  28. package/lib/common/CommonSQLiteAdapter.js.map +1 -0
  29. package/lib/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
  30. package/lib/{SQLiteAdapter → common}/SQLiteUtils.js +54 -3
  31. package/lib/common/SQLiteUtils.js.map +1 -0
  32. package/lib/common/constants.d.ts +1 -0
  33. package/lib/common/constants.js +4 -0
  34. package/lib/common/constants.js.map +1 -0
  35. package/lib/common/types.d.ts +13 -0
  36. package/lib/common/types.js +3 -0
  37. package/lib/common/types.js.map +1 -0
  38. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
  39. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +5 -0
  40. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
  41. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
  42. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +360 -0
  43. package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
  44. package/lib-esm/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
  45. package/lib-esm/SQLiteAdapter/SQLiteAdapter.js +3 -580
  46. package/lib-esm/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
  47. package/lib-esm/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
  48. package/lib-esm/SQLiteAdapter/SQLiteDatabase.js +46 -42
  49. package/lib-esm/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
  50. package/lib-esm/common/CommonSQLiteAdapter.d.ts +23 -0
  51. package/lib-esm/common/CommonSQLiteAdapter.js +580 -0
  52. package/lib-esm/common/CommonSQLiteAdapter.js.map +1 -0
  53. package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
  54. package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.js +52 -2
  55. package/lib-esm/common/SQLiteUtils.js.map +1 -0
  56. package/lib-esm/common/constants.d.ts +1 -0
  57. package/lib-esm/common/constants.js +2 -0
  58. package/lib-esm/common/constants.js.map +1 -0
  59. package/lib-esm/common/types.d.ts +13 -0
  60. package/lib-esm/common/types.js +1 -0
  61. package/lib-esm/common/types.js.map +1 -0
  62. package/package.json +13 -7
  63. package/src/ExpoSQLiteAdapter/ExpoSQLiteAdapter.ts +8 -0
  64. package/src/ExpoSQLiteAdapter/ExpoSQLiteDatabase.ts +282 -0
  65. package/src/SQLiteAdapter/SQLiteAdapter.ts +5 -475
  66. package/src/SQLiteAdapter/SQLiteDatabase.ts +49 -53
  67. package/src/common/CommonSQLiteAdapter.ts +479 -0
  68. package/src/{SQLiteAdapter → common}/SQLiteUtils.ts +66 -5
  69. package/src/common/constants.ts +1 -0
  70. package/src/common/types.ts +29 -0
  71. package/webpack.config.dev.js +2 -0
  72. package/lib/SQLiteAdapter/SQLiteUtils.js.map +0 -1
  73. package/lib/SQLiteAdapter/types.d.ts +0 -2
  74. package/lib/SQLiteAdapter/types.js +0 -28
  75. package/lib/SQLiteAdapter/types.js.map +0 -1
  76. package/lib-esm/SQLiteAdapter/SQLiteUtils.js.map +0 -1
  77. package/lib-esm/SQLiteAdapter/types.d.ts +0 -2
  78. package/lib-esm/SQLiteAdapter/types.js +0 -25
  79. package/lib-esm/SQLiteAdapter/types.js.map +0 -1
  80. package/src/SQLiteAdapter/types.ts +0 -31
@@ -0,0 +1,582 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
39
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40
+ var m = o[Symbol.asyncIterator], i;
41
+ 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 () { return this; }, i);
42
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
43
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
44
+ };
45
+ var __read = (this && this.__read) || function (o, n) {
46
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
47
+ if (!m) return o;
48
+ var i = m.call(o), r, ar = [], e;
49
+ try {
50
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
51
+ }
52
+ catch (error) { e = { error: error }; }
53
+ finally {
54
+ try {
55
+ if (r && !r.done && (m = i["return"])) m.call(i);
56
+ }
57
+ finally { if (e) throw e.error; }
58
+ }
59
+ return ar;
60
+ };
61
+ var __values = (this && this.__values) || function(o) {
62
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
63
+ if (m) return m.call(o);
64
+ if (o && typeof o.length === "number") return {
65
+ next: function () {
66
+ if (o && i >= o.length) o = void 0;
67
+ return { value: o && o[i++], done: !o };
68
+ }
69
+ };
70
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ var core_1 = require("@aws-amplify/core");
74
+ var SQLiteUtils_1 = require("../common/SQLiteUtils");
75
+ var datastore_1 = require("@aws-amplify/datastore");
76
+ var traverseModel = datastore_1.utils.traverseModel, validatePredicate = datastore_1.utils.validatePredicate, isModelConstructor = datastore_1.utils.isModelConstructor;
77
+ var logger = new core_1.ConsoleLogger('DataStore');
78
+ var CommonSQLiteAdapter = /** @class */ (function () {
79
+ function CommonSQLiteAdapter(db) {
80
+ this.db = db;
81
+ }
82
+ CommonSQLiteAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {
83
+ return __awaiter(this, void 0, void 0, function () {
84
+ var statements, error_1;
85
+ var _this = this;
86
+ return __generator(this, function (_a) {
87
+ switch (_a.label) {
88
+ case 0:
89
+ if (!!this.initPromise) return [3 /*break*/, 1];
90
+ this.initPromise = new Promise(function (res, rej) {
91
+ _this.resolve = res;
92
+ _this.reject = rej;
93
+ });
94
+ return [3 /*break*/, 3];
95
+ case 1: return [4 /*yield*/, this.initPromise];
96
+ case 2:
97
+ _a.sent();
98
+ return [2 /*return*/];
99
+ case 3:
100
+ this.schema = theSchema;
101
+ this.namespaceResolver = namespaceResolver;
102
+ this.modelInstanceCreator = modelInstanceCreator;
103
+ this.getModelConstructorByModelName = getModelConstructorByModelName;
104
+ _a.label = 4;
105
+ case 4:
106
+ _a.trys.push([4, 7, , 8]);
107
+ return [4 /*yield*/, this.db.init()];
108
+ case 5:
109
+ _a.sent();
110
+ statements = SQLiteUtils_1.generateSchemaStatements(this.schema);
111
+ return [4 /*yield*/, this.db.createSchema(statements)];
112
+ case 6:
113
+ _a.sent();
114
+ this.resolve();
115
+ return [3 /*break*/, 8];
116
+ case 7:
117
+ error_1 = _a.sent();
118
+ this.reject(error_1);
119
+ return [3 /*break*/, 8];
120
+ case 8: return [2 /*return*/];
121
+ }
122
+ });
123
+ });
124
+ };
125
+ CommonSQLiteAdapter.prototype.clear = function () {
126
+ return __awaiter(this, void 0, void 0, function () {
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0: return [4 /*yield*/, this.db.clear()];
130
+ case 1:
131
+ _a.sent();
132
+ this.initPromise = undefined;
133
+ return [2 /*return*/];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ CommonSQLiteAdapter.prototype.save = function (model, condition) {
139
+ var e_1, _a;
140
+ return __awaiter(this, void 0, void 0, function () {
141
+ 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;
142
+ return __generator(this, function (_d) {
143
+ switch (_d.label) {
144
+ case 0:
145
+ modelConstructor = Object.getPrototypeOf(model)
146
+ .constructor;
147
+ tableName = modelConstructor.name;
148
+ connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[this.namespaceResolver(modelConstructor)], this.modelInstanceCreator, this.getModelConstructorByModelName);
149
+ connectionStoreNames = Object.values(connectedModels).map(function (_a) {
150
+ var modelName = _a.modelName, item = _a.item, instance = _a.instance;
151
+ return { modelName: modelName, item: item, instance: instance };
152
+ });
153
+ _b = __read(SQLiteUtils_1.queryByIdStatement(model.id, tableName), 2), queryStatement = _b[0], params = _b[1];
154
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
155
+ case 1:
156
+ fromDB = _d.sent();
157
+ if (condition && fromDB) {
158
+ predicates = datastore_1.ModelPredicateCreator.getPredicates(condition);
159
+ predicateObjs = predicates.predicates, type = predicates.type;
160
+ isValid = validatePredicate(fromDB, type, predicateObjs);
161
+ if (!isValid) {
162
+ msg = 'Conditional update failed';
163
+ logger.error(msg, { model: fromDB, condition: predicateObjs });
164
+ throw new Error(msg);
165
+ }
166
+ }
167
+ result = [];
168
+ saveStatements = new Set();
169
+ _d.label = 2;
170
+ case 2:
171
+ _d.trys.push([2, 8, 9, 14]);
172
+ connectionStoreNames_1 = __asyncValues(connectionStoreNames);
173
+ _d.label = 3;
174
+ case 3: return [4 /*yield*/, connectionStoreNames_1.next()];
175
+ case 4:
176
+ if (!(connectionStoreNames_1_1 = _d.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 7];
177
+ resItem = connectionStoreNames_1_1.value;
178
+ modelName = resItem.modelName, item = resItem.item, instance = resItem.instance;
179
+ id = item.id;
180
+ _c = __read(SQLiteUtils_1.queryByIdStatement(id, modelName), 2), queryStatement_1 = _c[0], params_1 = _c[1];
181
+ return [4 /*yield*/, this.db.get(queryStatement_1, params_1)];
182
+ case 5:
183
+ fromDB_1 = _d.sent();
184
+ opType = fromDB_1 === undefined ? datastore_1.OpType.INSERT : datastore_1.OpType.UPDATE;
185
+ saveStatement = fromDB_1
186
+ ? SQLiteUtils_1.modelUpdateStatement(instance, modelName)
187
+ : SQLiteUtils_1.modelInsertStatement(instance, modelName);
188
+ if (id === model.id || opType === datastore_1.OpType.INSERT) {
189
+ saveStatements.add(saveStatement);
190
+ result.push([instance, opType]);
191
+ }
192
+ _d.label = 6;
193
+ case 6: return [3 /*break*/, 3];
194
+ case 7: return [3 /*break*/, 14];
195
+ case 8:
196
+ e_1_1 = _d.sent();
197
+ e_1 = { error: e_1_1 };
198
+ return [3 /*break*/, 14];
199
+ case 9:
200
+ _d.trys.push([9, , 12, 13]);
201
+ if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 11];
202
+ return [4 /*yield*/, _a.call(connectionStoreNames_1)];
203
+ case 10:
204
+ _d.sent();
205
+ _d.label = 11;
206
+ case 11: return [3 /*break*/, 13];
207
+ case 12:
208
+ if (e_1) throw e_1.error;
209
+ return [7 /*endfinally*/];
210
+ case 13: return [7 /*endfinally*/];
211
+ case 14: return [4 /*yield*/, this.db.batchSave(saveStatements)];
212
+ case 15:
213
+ _d.sent();
214
+ return [2 /*return*/, result];
215
+ }
216
+ });
217
+ });
218
+ };
219
+ CommonSQLiteAdapter.prototype.load = function (namespaceName, srcModelName, records) {
220
+ var records_1, records_1_1, records_2, records_2_1;
221
+ var e_2, _a, e_3, _b, e_4, _c;
222
+ return __awaiter(this, void 0, void 0, function () {
223
+ 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;
224
+ var _this = this;
225
+ return __generator(this, function (_g) {
226
+ switch (_g.label) {
227
+ case 0:
228
+ namespace = this.schema.namespaces[namespaceName];
229
+ relations = namespace.relationships[srcModelName].relationTypes;
230
+ connectionTableNames = relations.map(function (_a) {
231
+ var modelName = _a.modelName;
232
+ return modelName;
233
+ });
234
+ modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
235
+ if (connectionTableNames.length === 0) {
236
+ return [2 /*return*/, records.map(function (record) {
237
+ return _this.modelInstanceCreator(modelConstructor, record);
238
+ })];
239
+ }
240
+ _g.label = 1;
241
+ case 1:
242
+ _g.trys.push([1, 34, 35, 40]);
243
+ relations_1 = __asyncValues(relations);
244
+ _g.label = 2;
245
+ case 2: return [4 /*yield*/, relations_1.next()];
246
+ case 3:
247
+ if (!(relations_1_1 = _g.sent(), !relations_1_1.done)) return [3 /*break*/, 33];
248
+ relation = relations_1_1.value;
249
+ fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
250
+ modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
251
+ _d = relationType;
252
+ switch (_d) {
253
+ case 'HAS_ONE': return [3 /*break*/, 4];
254
+ case 'BELONGS_TO': return [3 /*break*/, 17];
255
+ case 'HAS_MANY': return [3 /*break*/, 30];
256
+ }
257
+ return [3 /*break*/, 31];
258
+ case 4:
259
+ _g.trys.push([4, 10, 11, 16]);
260
+ records_1 = __asyncValues(records);
261
+ _g.label = 5;
262
+ case 5: return [4 /*yield*/, records_1.next()];
263
+ case 6:
264
+ if (!(records_1_1 = _g.sent(), !records_1_1.done)) return [3 /*break*/, 9];
265
+ recordItem = records_1_1.value;
266
+ getByfield = recordItem[targetName] ? targetName : fieldName;
267
+ if (!recordItem[getByfield])
268
+ return [3 /*break*/, 9];
269
+ _e = __read(SQLiteUtils_1.queryByIdStatement(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
270
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
271
+ case 7:
272
+ connectionRecord = _g.sent();
273
+ recordItem[fieldName] =
274
+ connectionRecord &&
275
+ this.modelInstanceCreator(modelConstructor_1, connectionRecord);
276
+ _g.label = 8;
277
+ case 8: return [3 /*break*/, 5];
278
+ case 9: return [3 /*break*/, 16];
279
+ case 10:
280
+ e_3_1 = _g.sent();
281
+ e_3 = { error: e_3_1 };
282
+ return [3 /*break*/, 16];
283
+ case 11:
284
+ _g.trys.push([11, , 14, 15]);
285
+ if (!(records_1_1 && !records_1_1.done && (_b = records_1.return))) return [3 /*break*/, 13];
286
+ return [4 /*yield*/, _b.call(records_1)];
287
+ case 12:
288
+ _g.sent();
289
+ _g.label = 13;
290
+ case 13: return [3 /*break*/, 15];
291
+ case 14:
292
+ if (e_3) throw e_3.error;
293
+ return [7 /*endfinally*/];
294
+ case 15: return [7 /*endfinally*/];
295
+ case 16: return [3 /*break*/, 32];
296
+ case 17:
297
+ _g.trys.push([17, 23, 24, 29]);
298
+ records_2 = __asyncValues(records);
299
+ _g.label = 18;
300
+ case 18: return [4 /*yield*/, records_2.next()];
301
+ case 19:
302
+ if (!(records_2_1 = _g.sent(), !records_2_1.done)) return [3 /*break*/, 22];
303
+ recordItem = records_2_1.value;
304
+ if (!recordItem[targetName]) return [3 /*break*/, 21];
305
+ _f = __read(SQLiteUtils_1.queryByIdStatement(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
306
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
307
+ case 20:
308
+ connectionRecord = _g.sent();
309
+ recordItem[fieldName] =
310
+ connectionRecord &&
311
+ this.modelInstanceCreator(modelConstructor_1, connectionRecord);
312
+ delete recordItem[targetName];
313
+ _g.label = 21;
314
+ case 21: return [3 /*break*/, 18];
315
+ case 22: return [3 /*break*/, 29];
316
+ case 23:
317
+ e_4_1 = _g.sent();
318
+ e_4 = { error: e_4_1 };
319
+ return [3 /*break*/, 29];
320
+ case 24:
321
+ _g.trys.push([24, , 27, 28]);
322
+ if (!(records_2_1 && !records_2_1.done && (_c = records_2.return))) return [3 /*break*/, 26];
323
+ return [4 /*yield*/, _c.call(records_2)];
324
+ case 25:
325
+ _g.sent();
326
+ _g.label = 26;
327
+ case 26: return [3 /*break*/, 28];
328
+ case 27:
329
+ if (e_4) throw e_4.error;
330
+ return [7 /*endfinally*/];
331
+ case 28: return [7 /*endfinally*/];
332
+ case 29: return [3 /*break*/, 32];
333
+ case 30:
334
+ // TODO: Lazy loading
335
+ return [3 /*break*/, 32];
336
+ case 31:
337
+ _ = relationType;
338
+ throw new Error("invalid relation type " + relationType);
339
+ case 32: return [3 /*break*/, 2];
340
+ case 33: return [3 /*break*/, 40];
341
+ case 34:
342
+ e_2_1 = _g.sent();
343
+ e_2 = { error: e_2_1 };
344
+ return [3 /*break*/, 40];
345
+ case 35:
346
+ _g.trys.push([35, , 38, 39]);
347
+ if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 37];
348
+ return [4 /*yield*/, _a.call(relations_1)];
349
+ case 36:
350
+ _g.sent();
351
+ _g.label = 37;
352
+ case 37: return [3 /*break*/, 39];
353
+ case 38:
354
+ if (e_2) throw e_2.error;
355
+ return [7 /*endfinally*/];
356
+ case 39: return [7 /*endfinally*/];
357
+ case 40: return [2 /*return*/, records.map(function (record) {
358
+ return _this.modelInstanceCreator(modelConstructor, record);
359
+ })];
360
+ }
361
+ });
362
+ });
363
+ };
364
+ CommonSQLiteAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
365
+ return __awaiter(this, void 0, void 0, function () {
366
+ var tableName, namespaceName, predicates, sortPredicates, limit, page, queryById, records;
367
+ var _this = this;
368
+ return __generator(this, function (_a) {
369
+ switch (_a.label) {
370
+ case 0:
371
+ tableName = modelConstructor.name;
372
+ namespaceName = this.namespaceResolver(modelConstructor);
373
+ predicates = predicate && datastore_1.ModelPredicateCreator.getPredicates(predicate);
374
+ sortPredicates = pagination &&
375
+ pagination.sort &&
376
+ datastore_1.ModelSortPredicateCreator.getPredicates(pagination.sort);
377
+ limit = pagination && pagination.limit;
378
+ page = limit && pagination.page;
379
+ queryById = predicates && this.idFromPredicate(predicates);
380
+ return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
381
+ var record, _a, queryStatement, params;
382
+ return __generator(this, function (_b) {
383
+ switch (_b.label) {
384
+ case 0:
385
+ if (!queryById) return [3 /*break*/, 2];
386
+ return [4 /*yield*/, this.getById(tableName, queryById)];
387
+ case 1:
388
+ record = _b.sent();
389
+ return [2 /*return*/, record ? [record] : []];
390
+ case 2:
391
+ _a = __read(SQLiteUtils_1.queryAllStatement(tableName, predicates, sortPredicates, limit, page), 2), queryStatement = _a[0], params = _a[1];
392
+ return [4 /*yield*/, this.db.getAll(queryStatement, params)];
393
+ case 3: return [2 /*return*/, _b.sent()];
394
+ }
395
+ });
396
+ }); })()];
397
+ case 1:
398
+ records = _a.sent();
399
+ return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];
400
+ case 2: return [2 /*return*/, _a.sent()];
401
+ }
402
+ });
403
+ });
404
+ };
405
+ CommonSQLiteAdapter.prototype.getById = function (tableName, id) {
406
+ return __awaiter(this, void 0, void 0, function () {
407
+ var _a, queryStatement, params, record;
408
+ return __generator(this, function (_b) {
409
+ switch (_b.label) {
410
+ case 0:
411
+ _a = __read(SQLiteUtils_1.queryByIdStatement(id, tableName), 2), queryStatement = _a[0], params = _a[1];
412
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
413
+ case 1:
414
+ record = _b.sent();
415
+ return [2 /*return*/, record];
416
+ }
417
+ });
418
+ });
419
+ };
420
+ CommonSQLiteAdapter.prototype.idFromPredicate = function (predicates) {
421
+ var predicateObjs = predicates.predicates;
422
+ var idPredicate = predicateObjs.length === 1 &&
423
+ predicateObjs.find(function (p) { return datastore_1.isPredicateObj(p) && p.field === 'id' && p.operator === 'eq'; });
424
+ return idPredicate && idPredicate.operand;
425
+ };
426
+ CommonSQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
427
+ if (firstOrLast === void 0) { firstOrLast = datastore_1.QueryOne.FIRST; }
428
+ return __awaiter(this, void 0, void 0, function () {
429
+ var tableName, _a, queryStatement, params, result, modelInstance;
430
+ return __generator(this, function (_b) {
431
+ switch (_b.label) {
432
+ case 0:
433
+ tableName = modelConstructor.name;
434
+ _a = __read(SQLiteUtils_1.queryOneStatement(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
435
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
436
+ case 1:
437
+ result = _b.sent();
438
+ modelInstance = result && this.modelInstanceCreator(modelConstructor, result);
439
+ return [2 /*return*/, modelInstance];
440
+ }
441
+ });
442
+ });
443
+ };
444
+ // Currently does not cascade
445
+ // TODO: use FKs in relations and have `ON DELETE CASCADE` set
446
+ // For Has Many and Has One relations to have SQL handle cascades automatically
447
+ CommonSQLiteAdapter.prototype.delete = function (modelOrModelConstructor, condition) {
448
+ return __awaiter(this, void 0, void 0, function () {
449
+ 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;
450
+ return __generator(this, function (_d) {
451
+ switch (_d.label) {
452
+ case 0:
453
+ if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 3];
454
+ modelConstructor = modelOrModelConstructor;
455
+ namespaceName = this.namespaceResolver(modelConstructor);
456
+ tableName = modelConstructor.name;
457
+ predicates = condition && datastore_1.ModelPredicateCreator.getPredicates(condition);
458
+ queryStatement = SQLiteUtils_1.queryAllStatement(tableName, predicates);
459
+ deleteStatement = SQLiteUtils_1.deleteByPredicateStatement(tableName, predicates);
460
+ return [4 /*yield*/, this.db.selectAndDelete(queryStatement, deleteStatement)];
461
+ case 1:
462
+ models = _d.sent();
463
+ return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, models)];
464
+ case 2:
465
+ modelInstances = _d.sent();
466
+ return [2 /*return*/, [modelInstances, modelInstances]];
467
+ case 3:
468
+ model = modelOrModelConstructor;
469
+ modelConstructor = Object.getPrototypeOf(model)
470
+ .constructor;
471
+ tableName = modelConstructor.name;
472
+ if (!condition) return [3 /*break*/, 6];
473
+ _a = __read(SQLiteUtils_1.queryByIdStatement(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
474
+ return [4 /*yield*/, this.db.get(queryStatement, params)];
475
+ case 4:
476
+ fromDB = _d.sent();
477
+ if (fromDB === undefined) {
478
+ msg = 'Model instance not found in storage';
479
+ logger.warn(msg, { model: model });
480
+ return [2 /*return*/, [[model], []]];
481
+ }
482
+ predicates = datastore_1.ModelPredicateCreator.getPredicates(condition);
483
+ predicateObjs = predicates.predicates, type = predicates.type;
484
+ isValid = validatePredicate(fromDB, type, predicateObjs);
485
+ if (!isValid) {
486
+ msg = 'Conditional update failed';
487
+ logger.error(msg, { model: fromDB, condition: predicateObjs });
488
+ throw new Error(msg);
489
+ }
490
+ _b = __read(SQLiteUtils_1.deleteByIdStatement(model.id, tableName), 2), deleteStatement = _b[0], deleteParams = _b[1];
491
+ return [4 /*yield*/, this.db.save(deleteStatement, deleteParams)];
492
+ case 5:
493
+ _d.sent();
494
+ return [2 /*return*/, [[model], [model]]];
495
+ case 6:
496
+ _c = __read(SQLiteUtils_1.deleteByIdStatement(model.id, tableName), 2), deleteStatement = _c[0], params = _c[1];
497
+ return [4 /*yield*/, this.db.save(deleteStatement, params)];
498
+ case 7:
499
+ _d.sent();
500
+ return [2 /*return*/, [[model], [model]]];
501
+ }
502
+ });
503
+ });
504
+ };
505
+ // Temp fix to test build, will either export a separate metadata type here, or implement Custom PK in this adapter
506
+ CommonSQLiteAdapter.prototype.batchSave = function (modelConstructor, items) {
507
+ return __awaiter(this, void 0, void 0, function () {
508
+ var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
509
+ var e_5, _a;
510
+ return __generator(this, function (_b) {
511
+ switch (_b.label) {
512
+ case 0:
513
+ tableName = modelConstructor.name;
514
+ result = [];
515
+ itemsToSave = [];
516
+ queryStatements = new Set();
517
+ deleteStatements = new Set();
518
+ saveStatements = new Set();
519
+ _loop_1 = function (item) {
520
+ var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
521
+ var id = item.id, _deleted = item._deleted;
522
+ var instance = connectedModels.find(function (_a) {
523
+ var instance = _a.instance;
524
+ return instance.id === id;
525
+ }).instance;
526
+ if (_deleted) {
527
+ // create the delete statements right away
528
+ var deleteStatement = SQLiteUtils_1.deleteByIdStatement(instance.id, tableName);
529
+ deleteStatements.add(deleteStatement);
530
+ result.push([item, datastore_1.OpType.DELETE]);
531
+ }
532
+ else {
533
+ // query statements for the saves at first
534
+ var queryStatement = SQLiteUtils_1.queryByIdStatement(id, tableName);
535
+ queryStatements.add(queryStatement);
536
+ // combination of insert and update items
537
+ itemsToSave.push(instance);
538
+ }
539
+ };
540
+ this_1 = this;
541
+ try {
542
+ for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
543
+ item = items_1_1.value;
544
+ _loop_1(item);
545
+ }
546
+ }
547
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
548
+ finally {
549
+ try {
550
+ if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
551
+ }
552
+ finally { if (e_5) throw e_5.error; }
553
+ }
554
+ return [4 /*yield*/, this.db.batchQuery(queryStatements)];
555
+ case 1:
556
+ queryResponses = _b.sent();
557
+ queryResponses.forEach(function (response, idx) {
558
+ if (response === undefined) {
559
+ var insertStatement = SQLiteUtils_1.modelInsertStatement(itemsToSave[idx], tableName);
560
+ saveStatements.add(insertStatement);
561
+ result.push([itemsToSave[idx], datastore_1.OpType.INSERT]);
562
+ }
563
+ else {
564
+ var updateStatement = SQLiteUtils_1.modelUpdateStatement(itemsToSave[idx], tableName);
565
+ saveStatements.add(updateStatement);
566
+ result.push([itemsToSave[idx], datastore_1.OpType.UPDATE]);
567
+ }
568
+ });
569
+ // perform all of the insert/update/delete operations in a single transaction
570
+ return [4 /*yield*/, this.db.batchSave(saveStatements, deleteStatements)];
571
+ case 2:
572
+ // perform all of the insert/update/delete operations in a single transaction
573
+ _b.sent();
574
+ return [2 /*return*/, result];
575
+ }
576
+ });
577
+ });
578
+ };
579
+ return CommonSQLiteAdapter;
580
+ }());
581
+ exports.CommonSQLiteAdapter = CommonSQLiteAdapter;
582
+ //# sourceMappingURL=CommonSQLiteAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonSQLiteAdapter.js","sourceRoot":"","sources":["../../src/common/CommonSQLiteAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { InternalSchema, SchemaModel, PersistentModel, PredicatesGroup, SortPredicatesGroup } from '@aws-amplify/datastore';
2
- export declare type ParameterizedStatement = [string, any[]];
1
+ import { InternalSchema, SchemaModel, PersistentModel, PredicatesGroup, SortPredicatesGroup, GraphQLScalarType } from '@aws-amplify/datastore';
2
+ import { ParameterizedStatement } from './types';
3
+ export declare function getSQLiteType(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction' | 'getSQLiteType'>): 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB';
3
4
  export declare function generateSchemaStatements(schema: InternalSchema): string[];
4
5
  export declare const implicitAuthFieldsForModel: (model: SchemaModel) => string[];
5
6
  export declare function modelCreateTableStatement(model: SchemaModel, userModel?: boolean): string;