@aws-amplify/datastore 4.1.1 → 4.1.2

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 (26) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +52 -28
  3. package/lib/storage/adapter/AsyncStorageAdapter.js +212 -476
  4. package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  5. package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  6. package/lib/storage/adapter/IndexedDBAdapter.d.ts +53 -28
  7. package/lib/storage/adapter/IndexedDBAdapter.js +589 -892
  8. package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
  9. package/lib/storage/adapter/StorageAdapterBase.d.ts +146 -0
  10. package/lib/storage/adapter/StorageAdapterBase.js +479 -0
  11. package/lib/storage/adapter/StorageAdapterBase.js.map +1 -0
  12. package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +52 -28
  13. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +215 -479
  14. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  15. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  16. package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +53 -28
  17. package/lib-esm/storage/adapter/IndexedDBAdapter.js +588 -891
  18. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
  19. package/lib-esm/storage/adapter/StorageAdapterBase.d.ts +146 -0
  20. package/lib-esm/storage/adapter/StorageAdapterBase.js +477 -0
  21. package/lib-esm/storage/adapter/StorageAdapterBase.js.map +1 -0
  22. package/package.json +6 -6
  23. package/src/storage/adapter/AsyncStorageAdapter.ts +239 -543
  24. package/src/storage/adapter/AsyncStorageDatabase.ts +2 -2
  25. package/src/storage/adapter/IndexedDBAdapter.ts +423 -786
  26. package/src/storage/adapter/StorageAdapterBase.ts +639 -0
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var core_1 = require("@aws-amplify/core");
5
+ var predicates_1 = require("../../predicates");
6
+ var types_1 = require("../../types");
7
+ var util_1 = require("../../util");
8
+ var logger = new core_1.ConsoleLogger('DataStore');
9
+ var DB_NAME = 'amplify-datastore';
10
+ var StorageAdapterBase = /** @class */ (function () {
11
+ function StorageAdapterBase() {
12
+ this.dbName = DB_NAME;
13
+ }
14
+ /**
15
+ * Initializes local DB
16
+ *
17
+ * @param theSchema
18
+ * @param namespaceResolver
19
+ * @param modelInstanceCreator
20
+ * @param getModelConstructorByModelName
21
+ * @param sessionId
22
+ */
23
+ StorageAdapterBase.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName, sessionId) {
24
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
25
+ var _a, error_1;
26
+ var _this = this;
27
+ return tslib_1.__generator(this, function (_b) {
28
+ switch (_b.label) {
29
+ case 0: return [4 /*yield*/, this.preSetUpChecks()];
30
+ case 1:
31
+ _b.sent();
32
+ if (!!this.initPromise) return [3 /*break*/, 2];
33
+ this.initPromise = new Promise(function (res, rej) {
34
+ _this.resolve = res;
35
+ _this.reject = rej;
36
+ });
37
+ return [3 /*break*/, 4];
38
+ case 2: return [4 /*yield*/, this.initPromise];
39
+ case 3:
40
+ _b.sent();
41
+ return [2 /*return*/];
42
+ case 4:
43
+ if (sessionId) {
44
+ this.dbName = DB_NAME + "-" + sessionId;
45
+ }
46
+ this.schema = theSchema;
47
+ this.namespaceResolver = namespaceResolver;
48
+ this.modelInstanceCreator = modelInstanceCreator;
49
+ this.getModelConstructorByModelName = getModelConstructorByModelName;
50
+ _b.label = 5;
51
+ case 5:
52
+ _b.trys.push([5, 8, , 9]);
53
+ if (!!this.db) return [3 /*break*/, 7];
54
+ _a = this;
55
+ return [4 /*yield*/, this.initDb()];
56
+ case 6:
57
+ _a.db = _b.sent();
58
+ this.resolve();
59
+ _b.label = 7;
60
+ case 7: return [3 /*break*/, 9];
61
+ case 8:
62
+ error_1 = _b.sent();
63
+ this.reject(error_1);
64
+ return [3 /*break*/, 9];
65
+ case 9: return [2 /*return*/];
66
+ }
67
+ });
68
+ });
69
+ };
70
+ /**
71
+ * @param modelConstructor
72
+ * @returns local DB table name
73
+ */
74
+ StorageAdapterBase.prototype.getStorenameForModel = function (modelConstructor) {
75
+ var namespace = this.namespaceResolver(modelConstructor);
76
+ var modelName = modelConstructor.name;
77
+ return util_1.getStorename(namespace, modelName);
78
+ };
79
+ /**
80
+ *
81
+ * @param model - instantiated model record
82
+ * @returns the record's primary key values
83
+ */
84
+ StorageAdapterBase.prototype.getIndexKeyValuesFromModel = function (model) {
85
+ var modelConstructor = Object.getPrototypeOf(model)
86
+ .constructor;
87
+ var namespaceName = this.namespaceResolver(modelConstructor);
88
+ var keys = util_1.getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);
89
+ return util_1.extractPrimaryKeyValues(model, keys);
90
+ };
91
+ /**
92
+ * Common metadata for `save` operation
93
+ * used by individual storage adapters
94
+ *
95
+ * @param model
96
+ */
97
+ StorageAdapterBase.prototype.saveMetadata = function (model) {
98
+ var _this = this;
99
+ var modelConstructor = Object.getPrototypeOf(model)
100
+ .constructor;
101
+ var storeName = this.getStorenameForModel(modelConstructor);
102
+ var namespaceName = this.namespaceResolver(modelConstructor);
103
+ var connectedModels = util_1.traverseModel(modelConstructor.name, model, this.schema.namespaces[namespaceName], this.modelInstanceCreator, this.getModelConstructorByModelName);
104
+ var set = new Set();
105
+ var connectionStoreNames = Object.values(connectedModels).map(function (_a) {
106
+ var modelName = _a.modelName, item = _a.item, instance = _a.instance;
107
+ var storeName = util_1.getStorename(namespaceName, modelName);
108
+ set.add(storeName);
109
+ var keys = util_1.getIndexKeys(_this.schema.namespaces[namespaceName], modelName);
110
+ return { storeName: storeName, item: item, instance: instance, keys: keys };
111
+ });
112
+ var modelKeyValues = this.getIndexKeyValuesFromModel(model);
113
+ return { storeName: storeName, set: set, connectionStoreNames: connectionStoreNames, modelKeyValues: modelKeyValues };
114
+ };
115
+ /**
116
+ * Enforces conditional save. Throws if condition is not met.
117
+ * used by individual storage adapters
118
+ *
119
+ * @param model
120
+ */
121
+ StorageAdapterBase.prototype.validateSaveCondition = function (condition, fromDB) {
122
+ if (!(condition && fromDB)) {
123
+ return;
124
+ }
125
+ var predicates = predicates_1.ModelPredicateCreator.getPredicates(condition);
126
+ var _a = predicates, predicateObjs = _a.predicates, type = _a.type;
127
+ var isValid = util_1.validatePredicate(fromDB, type, predicateObjs);
128
+ if (!isValid) {
129
+ var msg = 'Conditional update failed';
130
+ logger.error(msg, { model: fromDB, condition: predicateObjs });
131
+ throw new Error(msg);
132
+ }
133
+ };
134
+ /**
135
+ * Instantiate models from POJO records returned from the database
136
+ *
137
+ * @param namespaceName - string model namespace
138
+ * @param srcModelName - string model name
139
+ * @param records - array of uninstantiated records
140
+ * @returns
141
+ */
142
+ StorageAdapterBase.prototype.load = function (namespaceName, srcModelName, records) {
143
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
144
+ var namespace, relations, connectionStoreNames, modelConstructor;
145
+ var _this = this;
146
+ return tslib_1.__generator(this, function (_a) {
147
+ namespace = this.schema.namespaces[namespaceName];
148
+ relations = namespace.relationships[srcModelName].relationTypes;
149
+ connectionStoreNames = relations.map(function (_a) {
150
+ var modelName = _a.modelName;
151
+ return util_1.getStorename(namespaceName, modelName);
152
+ });
153
+ modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
154
+ if (connectionStoreNames.length === 0) {
155
+ return [2 /*return*/, records.map(function (record) {
156
+ return _this.modelInstanceCreator(modelConstructor, record);
157
+ })];
158
+ }
159
+ return [2 /*return*/, records.map(function (record) {
160
+ return _this.modelInstanceCreator(modelConstructor, record);
161
+ })];
162
+ });
163
+ });
164
+ };
165
+ /**
166
+ * Extracts operands from a predicate group into an array of key values
167
+ * Used in the query method
168
+ *
169
+ * @param predicates - predicate group
170
+ * @param keyPath - string array of key names ['id', 'sortKey']
171
+ * @returns string[] of key values
172
+ *
173
+ * @example
174
+ * ```js
175
+ * { and:[{ id: { eq: 'abc' }}, { sortKey: { eq: 'def' }}] }
176
+ * ```
177
+ * Becomes
178
+ * ```
179
+ * ['abc', 'def']
180
+ * ```
181
+ */
182
+ StorageAdapterBase.prototype.keyValueFromPredicate = function (predicates, keyPath) {
183
+ var e_1, _a;
184
+ var predicateObjs = predicates.predicates;
185
+ if (predicateObjs.length !== keyPath.length) {
186
+ return;
187
+ }
188
+ var keyValues = [];
189
+ var _loop_1 = function (key) {
190
+ var predicateObj = predicateObjs.find(function (p) {
191
+ // it's a relevant predicate object only if it's an equality
192
+ // operation for a key field from the key:
193
+ return types_1.isPredicateObj(p) &&
194
+ p.field === key &&
195
+ p.operator === 'eq' &&
196
+ p.operand !== null &&
197
+ p.operand !== undefined;
198
+ });
199
+ predicateObj && keyValues.push(predicateObj.operand);
200
+ };
201
+ try {
202
+ for (var keyPath_1 = tslib_1.__values(keyPath), keyPath_1_1 = keyPath_1.next(); !keyPath_1_1.done; keyPath_1_1 = keyPath_1.next()) {
203
+ var key = keyPath_1_1.value;
204
+ _loop_1(key);
205
+ }
206
+ }
207
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
208
+ finally {
209
+ try {
210
+ if (keyPath_1_1 && !keyPath_1_1.done && (_a = keyPath_1.return)) _a.call(keyPath_1);
211
+ }
212
+ finally { if (e_1) throw e_1.error; }
213
+ }
214
+ return keyValues.length === keyPath.length ? keyValues : undefined;
215
+ };
216
+ /**
217
+ * Common metadata for `query` operation
218
+ * used by individual storage adapters
219
+ *
220
+ * @param modelConstructor
221
+ * @param predicate
222
+ * @param pagination
223
+ */
224
+ StorageAdapterBase.prototype.queryMetadata = function (modelConstructor, predicate, pagination) {
225
+ var storeName = this.getStorenameForModel(modelConstructor);
226
+ var namespaceName = this.namespaceResolver(modelConstructor);
227
+ var predicates = predicate && predicates_1.ModelPredicateCreator.getPredicates(predicate);
228
+ var keyPath = util_1.getIndexKeys(this.schema.namespaces[namespaceName], modelConstructor.name);
229
+ var queryByKey = predicates && this.keyValueFromPredicate(predicates, keyPath);
230
+ var hasSort = pagination && pagination.sort;
231
+ var hasPagination = pagination && pagination.limit;
232
+ return {
233
+ storeName: storeName,
234
+ namespaceName: namespaceName,
235
+ queryByKey: queryByKey,
236
+ predicates: predicates,
237
+ hasSort: hasSort,
238
+ hasPagination: hasPagination,
239
+ };
240
+ };
241
+ /**
242
+ * Delete record
243
+ * Cascades to related records (for Has One and Has Many relationships)
244
+ *
245
+ * @param modelOrModelConstructor
246
+ * @param condition
247
+ * @returns
248
+ */
249
+ StorageAdapterBase.prototype.delete = function (modelOrModelConstructor, condition) {
250
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
251
+ var deleteQueue, modelConstructor, namespace, models, relations, deletedModels, deletedModels, model, modelConstructor, namespaceName, storeName, keyValues, fromDB, msg, predicates, _a, predicateObjs, type, isValid, msg, relations, relations, deletedModels;
252
+ return tslib_1.__generator(this, function (_b) {
253
+ switch (_b.label) {
254
+ case 0: return [4 /*yield*/, this.preOpCheck()];
255
+ case 1:
256
+ _b.sent();
257
+ deleteQueue = [];
258
+ if (!util_1.isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 9];
259
+ modelConstructor = modelOrModelConstructor;
260
+ namespace = this.namespaceResolver(modelConstructor);
261
+ return [4 /*yield*/, this.query(modelConstructor, condition)];
262
+ case 2:
263
+ models = _b.sent();
264
+ relations = this.schema.namespaces[namespace].relationships[modelConstructor.name]
265
+ .relationTypes;
266
+ if (!(condition !== undefined)) return [3 /*break*/, 5];
267
+ return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, namespace, deleteQueue)];
268
+ case 3:
269
+ _b.sent();
270
+ return [4 /*yield*/, this.deleteItem(deleteQueue)];
271
+ case 4:
272
+ _b.sent();
273
+ deletedModels = deleteQueue.reduce(function (acc, _a) {
274
+ var items = _a.items;
275
+ return acc.concat(items);
276
+ }, []);
277
+ return [2 /*return*/, [models, deletedModels]];
278
+ case 5: return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, namespace, deleteQueue)];
279
+ case 6:
280
+ _b.sent();
281
+ return [4 /*yield*/, this.deleteItem(deleteQueue)];
282
+ case 7:
283
+ _b.sent();
284
+ deletedModels = deleteQueue.reduce(function (acc, _a) {
285
+ var items = _a.items;
286
+ return acc.concat(items);
287
+ }, []);
288
+ return [2 /*return*/, [models, deletedModels]];
289
+ case 8: return [3 /*break*/, 16];
290
+ case 9:
291
+ model = modelOrModelConstructor;
292
+ modelConstructor = Object.getPrototypeOf(model)
293
+ .constructor;
294
+ namespaceName = this.namespaceResolver(modelConstructor);
295
+ storeName = this.getStorenameForModel(modelConstructor);
296
+ if (!condition) return [3 /*break*/, 12];
297
+ keyValues = this.getIndexKeyValuesFromModel(model);
298
+ return [4 /*yield*/, this._get(storeName, keyValues)];
299
+ case 10:
300
+ fromDB = _b.sent();
301
+ if (fromDB === undefined) {
302
+ msg = 'Model instance not found in storage';
303
+ logger.warn(msg, { model: model });
304
+ return [2 /*return*/, [[model], []]];
305
+ }
306
+ predicates = predicates_1.ModelPredicateCreator.getPredicates(condition);
307
+ _a = predicates, predicateObjs = _a.predicates, type = _a.type;
308
+ isValid = util_1.validatePredicate(fromDB, type, predicateObjs);
309
+ if (!isValid) {
310
+ msg = 'Conditional update failed';
311
+ logger.error(msg, { model: fromDB, condition: predicateObjs });
312
+ throw new Error(msg);
313
+ }
314
+ relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
315
+ return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
316
+ case 11:
317
+ _b.sent();
318
+ return [3 /*break*/, 14];
319
+ case 12:
320
+ relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
321
+ return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
322
+ case 13:
323
+ _b.sent();
324
+ _b.label = 14;
325
+ case 14: return [4 /*yield*/, this.deleteItem(deleteQueue)];
326
+ case 15:
327
+ _b.sent();
328
+ deletedModels = deleteQueue.reduce(function (acc, _a) {
329
+ var items = _a.items;
330
+ return acc.concat(items);
331
+ }, []);
332
+ return [2 /*return*/, [[model], deletedModels]];
333
+ case 16: return [2 /*return*/];
334
+ }
335
+ });
336
+ });
337
+ };
338
+ /**
339
+ * Recursively traverse relationship graph and add
340
+ * all Has One and Has Many relations to `deleteQueue` param
341
+ *
342
+ * Actual deletion of records added to `deleteQueue` occurs in the `delete` method
343
+ *
344
+ * @param relations
345
+ * @param models
346
+ * @param srcModel
347
+ * @param namespace
348
+ * @param deleteQueue
349
+ */
350
+ StorageAdapterBase.prototype.deleteTraverse = function (relations, models, srcModel, namespace, deleteQueue) {
351
+ var relations_1, relations_1_1, models_1, models_1_1;
352
+ var e_2, _a, e_3, _b;
353
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
354
+ var rel, modelName, relationType, targetNames, associatedWith, storeName, index, model, childRecords, _c, childRecord, keyValues, records, childModels, e_3_1, e_2_1;
355
+ var _this = this;
356
+ return tslib_1.__generator(this, function (_d) {
357
+ switch (_d.label) {
358
+ case 0:
359
+ _d.trys.push([0, 28, 29, 34]);
360
+ relations_1 = tslib_1.__asyncValues(relations);
361
+ _d.label = 1;
362
+ case 1: return [4 /*yield*/, relations_1.next()];
363
+ case 2:
364
+ if (!(relations_1_1 = _d.sent(), !relations_1_1.done)) return [3 /*break*/, 27];
365
+ rel = relations_1_1.value;
366
+ modelName = rel.modelName, relationType = rel.relationType, targetNames = rel.targetNames, associatedWith = rel.associatedWith;
367
+ storeName = util_1.getStorename(namespace, modelName);
368
+ index = util_1.getIndex(this.schema.namespaces[namespace].relationships[modelName]
369
+ .relationTypes, srcModel) ||
370
+ // if we were unable to find an index via relationTypes
371
+ // i.e. for keyName connections, attempt to find one by the
372
+ // associatedWith property
373
+ util_1.getIndexFromAssociation(this.schema.namespaces[namespace].relationships[modelName].indexes, associatedWith);
374
+ _d.label = 3;
375
+ case 3:
376
+ _d.trys.push([3, 20, 21, 26]);
377
+ models_1 = tslib_1.__asyncValues(models);
378
+ _d.label = 4;
379
+ case 4: return [4 /*yield*/, models_1.next()];
380
+ case 5:
381
+ if (!(models_1_1 = _d.sent(), !models_1_1.done)) return [3 /*break*/, 19];
382
+ model = models_1_1.value;
383
+ childRecords = [];
384
+ _c = relationType;
385
+ switch (_c) {
386
+ case 'HAS_ONE': return [3 /*break*/, 6];
387
+ case 'HAS_MANY': return [3 /*break*/, 11];
388
+ case 'BELONGS_TO': return [3 /*break*/, 13];
389
+ }
390
+ return [3 /*break*/, 14];
391
+ case 6:
392
+ childRecord = void 0;
393
+ if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 8];
394
+ return [4 /*yield*/, this.getHasOneChild(model, srcModel, namespace, rel)];
395
+ case 7:
396
+ childRecord = _d.sent();
397
+ return [3 /*break*/, 10];
398
+ case 8: return [4 /*yield*/, this.getHasOneChildLegacy(model, srcModel, namespace, rel)];
399
+ case 9:
400
+ childRecord = _d.sent();
401
+ _d.label = 10;
402
+ case 10:
403
+ if (childRecord) {
404
+ childRecords.push(childRecord);
405
+ }
406
+ return [3 /*break*/, 15];
407
+ case 11:
408
+ keyValues = this.getIndexKeyValuesFromModel(model);
409
+ return [4 /*yield*/, this.getHasManyChildren(storeName, index, keyValues)];
410
+ case 12:
411
+ records = _d.sent();
412
+ if (records === null || records === void 0 ? void 0 : records.length) {
413
+ childRecords.push.apply(childRecords, tslib_1.__spread(records));
414
+ }
415
+ return [3 /*break*/, 15];
416
+ case 13:
417
+ // Intentionally blank
418
+ return [3 /*break*/, 15];
419
+ case 14: throw new Error("Invalid relation type " + relationType);
420
+ case 15: return [4 /*yield*/, this.load(namespace, modelName, childRecords)];
421
+ case 16:
422
+ childModels = _d.sent();
423
+ return [4 /*yield*/, this.deleteTraverse(this.schema.namespaces[namespace].relationships[modelName]
424
+ .relationTypes, childModels, modelName, namespace, deleteQueue)];
425
+ case 17:
426
+ _d.sent();
427
+ _d.label = 18;
428
+ case 18: return [3 /*break*/, 4];
429
+ case 19: return [3 /*break*/, 26];
430
+ case 20:
431
+ e_3_1 = _d.sent();
432
+ e_3 = { error: e_3_1 };
433
+ return [3 /*break*/, 26];
434
+ case 21:
435
+ _d.trys.push([21, , 24, 25]);
436
+ if (!(models_1_1 && !models_1_1.done && (_b = models_1.return))) return [3 /*break*/, 23];
437
+ return [4 /*yield*/, _b.call(models_1)];
438
+ case 22:
439
+ _d.sent();
440
+ _d.label = 23;
441
+ case 23: return [3 /*break*/, 25];
442
+ case 24:
443
+ if (e_3) throw e_3.error;
444
+ return [7 /*endfinally*/];
445
+ case 25: return [7 /*endfinally*/];
446
+ case 26: return [3 /*break*/, 1];
447
+ case 27: return [3 /*break*/, 34];
448
+ case 28:
449
+ e_2_1 = _d.sent();
450
+ e_2 = { error: e_2_1 };
451
+ return [3 /*break*/, 34];
452
+ case 29:
453
+ _d.trys.push([29, , 32, 33]);
454
+ if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 31];
455
+ return [4 /*yield*/, _a.call(relations_1)];
456
+ case 30:
457
+ _d.sent();
458
+ _d.label = 31;
459
+ case 31: return [3 /*break*/, 33];
460
+ case 32:
461
+ if (e_2) throw e_2.error;
462
+ return [7 /*endfinally*/];
463
+ case 33: return [7 /*endfinally*/];
464
+ case 34:
465
+ deleteQueue.push({
466
+ storeName: util_1.getStorename(namespace, srcModel),
467
+ items: models.map(function (record) {
468
+ return _this.modelInstanceCreator(_this.getModelConstructorByModelName(namespace, srcModel), record);
469
+ }),
470
+ });
471
+ return [2 /*return*/];
472
+ }
473
+ });
474
+ });
475
+ };
476
+ return StorageAdapterBase;
477
+ }());
478
+ exports.StorageAdapterBase = StorageAdapterBase;
479
+ //# sourceMappingURL=StorageAdapterBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageAdapterBase.js","sourceRoot":"","sources":["../../../src/storage/adapter/StorageAdapterBase.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,66 @@
1
- import { Adapter } from './index';
2
- import { ModelInstanceCreator } from '../../datastore/datastore';
3
- import { InternalSchema, ModelInstanceMetadata, ModelPredicate, NamespaceResolver, OpType, PaginationInput, PersistentModel, PersistentModelConstructor, QueryOne } from '../../types';
1
+ import AsyncStorageDatabase from './AsyncStorageDatabase';
2
+ import { ModelInstanceMetadata, ModelPredicate, OpType, PaginationInput, PersistentModel, PersistentModelConstructor, QueryOne, RelationType } from '../../types';
4
3
  import { NAMESPACES } from '../../util';
5
- export declare class AsyncStorageAdapter implements Adapter {
6
- private schema;
7
- private namespaceResolver;
8
- private modelInstanceCreator;
9
- private getModelConstructorByModelName;
10
- private db;
11
- private initPromise;
12
- private resolve;
13
- private reject;
14
- private getStorenameForModel;
15
- private getIndexKeyValuesFromModel;
16
- private getIndexKeyValuesPath;
17
- setUp(theSchema: InternalSchema, namespaceResolver: NamespaceResolver, modelInstanceCreator: ModelInstanceCreator, getModelConstructorByModelName: (namsespaceName: NAMESPACES, modelName: string) => PersistentModelConstructor<any>): Promise<void>;
4
+ import { StorageAdapterBase } from './StorageAdapterBase';
5
+ export declare class AsyncStorageAdapter extends StorageAdapterBase {
6
+ protected db: AsyncStorageDatabase;
7
+ protected preSetUpChecks(): Promise<void>;
8
+ protected preOpCheck(): Promise<void>;
9
+ /**
10
+ * Open AsyncStorage database
11
+ * Create new DB if one doesn't exist
12
+ *
13
+ * Called by `StorageAdapterBase.setUp()`
14
+ *
15
+ * @returns AsyncStorageDatabase instance
16
+ */
17
+ protected initDb(): Promise<AsyncStorageDatabase>;
18
+ clear(): Promise<void>;
19
+ batchSave<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<any>, items: ModelInstanceMetadata[]): Promise<[T, OpType][]>;
20
+ protected _get<T>(storeName: string, keyArr: string[]): Promise<T>;
18
21
  save<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>): Promise<[T, OpType.INSERT | OpType.UPDATE][]>;
19
- private load;
20
22
  query<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, predicate?: ModelPredicate<T>, pagination?: PaginationInput<T>): Promise<T[]>;
21
23
  private getByKey;
22
24
  private getAll;
23
- private keyValueFromPredicate;
24
25
  private filterOnPredicate;
25
26
  private inMemoryPagination;
26
27
  queryOne<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, firstOrLast?: QueryOne): Promise<T | undefined>;
27
- delete<T extends PersistentModel>(modelOrModelConstructor: T | PersistentModelConstructor<T>, condition?: ModelPredicate<T>): Promise<[T[], T[]]>;
28
- private deleteItem;
28
+ protected deleteItem<T extends PersistentModel>(deleteQueue?: {
29
+ storeName: string;
30
+ items: T[] | IDBValidKey[];
31
+ }[]): Promise<void>;
29
32
  /**
30
- * Populates the delete Queue with all the items to delete
31
- * @param relations
32
- * @param models
33
+ * Gets related Has One record for `model`
34
+ *
35
+ * @param model
33
36
  * @param srcModel
34
- * @param nameSpace
35
- * @param deleteQueue
37
+ * @param namespace
38
+ * @param rel
39
+ * @returns
36
40
  */
37
- private deleteTraverse;
38
- clear(): Promise<void>;
39
- batchSave<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<any>, items: ModelInstanceMetadata[]): Promise<[T, OpType][]>;
41
+ protected getHasOneChild<T extends PersistentModel>(model: T, srcModel: string, namespace: NAMESPACES, rel: RelationType): Promise<any>;
42
+ /**
43
+ * Backwards compatability for pre-CPK codegen
44
+ * TODO - deprecate this in v6; will need to re-gen MIPR for older unit
45
+ * tests that hit this path
46
+ */
47
+ protected getHasOneChildLegacy<T extends PersistentModel>(model: T, srcModel: string, namespace: NAMESPACES, rel: RelationType): Promise<T>;
48
+ /**
49
+ * Gets related Has Many records by given `storeName`, `index`, and `keyValues`
50
+ *
51
+ * @param storeName
52
+ * @param index
53
+ * @param keyValues
54
+ * @returns
55
+ */
56
+ protected getHasManyChildren<T extends PersistentModel>(storeName: string, index: string, keyValues: string[]): Promise<T[]>;
57
+ /**
58
+ * Retrieves concatenated primary key values from a model
59
+ *
60
+ * @param model
61
+ * @returns
62
+ */
63
+ private getIndexKeyValuesPath;
40
64
  }
41
65
  declare const _default: AsyncStorageAdapter;
42
66
  export default _default;