@aws-amplify/datastore 3.14.4 → 3.14.5-unstable.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 (178) hide show
  1. package/CHANGELOG.md +0 -8
  2. package/lib/authModeStrategies/defaultAuthStrategy.d.ts +2 -0
  3. package/lib/authModeStrategies/index.d.ts +2 -0
  4. package/lib/authModeStrategies/multiAuthStrategy.d.ts +13 -0
  5. package/lib/authModeStrategies/multiAuthStrategy.js +6 -64
  6. package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
  7. package/lib/datastore/datastore.d.ts +207 -0
  8. package/lib/datastore/datastore.js +703 -297
  9. package/lib/datastore/datastore.js.map +1 -1
  10. package/lib/index.d.ts +16 -0
  11. package/lib/index.js +6 -4
  12. package/lib/index.js.map +1 -1
  13. package/lib/predicates/index.d.ts +30 -0
  14. package/lib/predicates/index.js +127 -6
  15. package/lib/predicates/index.js.map +1 -1
  16. package/lib/predicates/next.d.ts +301 -0
  17. package/lib/predicates/next.js +816 -0
  18. package/lib/predicates/next.js.map +1 -0
  19. package/lib/predicates/sort.d.ts +8 -0
  20. package/lib/predicates/sort.js +10 -4
  21. package/lib/predicates/sort.js.map +1 -1
  22. package/lib/ssr/index.d.ts +3 -0
  23. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +42 -0
  24. package/lib/storage/adapter/AsyncStorageAdapter.js +141 -382
  25. package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  26. package/lib/storage/adapter/AsyncStorageDatabase.d.ts +39 -0
  27. package/lib/storage/adapter/AsyncStorageDatabase.js +37 -98
  28. package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  29. package/lib/storage/adapter/InMemoryStore.d.ts +11 -0
  30. package/lib/storage/adapter/InMemoryStore.js +16 -67
  31. package/lib/storage/adapter/InMemoryStore.js.map +1 -1
  32. package/lib/storage/adapter/InMemoryStore.native.d.ts +1 -0
  33. package/lib/storage/adapter/InMemoryStore.native.js +2 -4
  34. package/lib/storage/adapter/InMemoryStore.native.js.map +1 -1
  35. package/lib/storage/adapter/IndexedDBAdapter.d.ts +61 -0
  36. package/lib/storage/adapter/IndexedDBAdapter.js +275 -419
  37. package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
  38. package/lib/storage/adapter/getDefaultAdapter/index.d.ts +3 -0
  39. package/lib/storage/adapter/getDefaultAdapter/index.js +3 -5
  40. package/lib/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  41. package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +3 -0
  42. package/lib/storage/adapter/getDefaultAdapter/index.native.js +2 -4
  43. package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
  44. package/lib/storage/adapter/index.d.ts +9 -0
  45. package/lib/storage/relationship.d.ts +140 -0
  46. package/lib/storage/relationship.js +335 -0
  47. package/lib/storage/relationship.js.map +1 -0
  48. package/lib/storage/storage.d.ts +50 -0
  49. package/lib/storage/storage.js +72 -143
  50. package/lib/storage/storage.js.map +1 -1
  51. package/lib/sync/datastoreConnectivity.d.ts +16 -0
  52. package/lib/sync/datastoreConnectivity.js +6 -55
  53. package/lib/sync/datastoreConnectivity.js.map +1 -1
  54. package/lib/sync/datastoreReachability/index.d.ts +3 -0
  55. package/lib/sync/datastoreReachability/index.native.d.ts +3 -0
  56. package/lib/sync/datastoreReachability/index.native.js +2 -4
  57. package/lib/sync/datastoreReachability/index.native.js.map +1 -1
  58. package/lib/sync/index.d.ts +89 -0
  59. package/lib/sync/index.js +49 -124
  60. package/lib/sync/index.js.map +1 -1
  61. package/lib/sync/merger.d.ts +17 -0
  62. package/lib/sync/merger.js +8 -74
  63. package/lib/sync/merger.js.map +1 -1
  64. package/lib/sync/outbox.d.ts +27 -0
  65. package/lib/sync/outbox.js +24 -97
  66. package/lib/sync/outbox.js.map +1 -1
  67. package/lib/sync/processors/errorMaps.d.ts +17 -0
  68. package/lib/sync/processors/errorMaps.js +5 -35
  69. package/lib/sync/processors/errorMaps.js.map +1 -1
  70. package/lib/sync/processors/mutation.d.ts +58 -0
  71. package/lib/sync/processors/mutation.js +47 -131
  72. package/lib/sync/processors/mutation.js.map +1 -1
  73. package/lib/sync/processors/subscription.d.ts +33 -0
  74. package/lib/sync/processors/subscription.js +29 -102
  75. package/lib/sync/processors/subscription.js.map +1 -1
  76. package/lib/sync/processors/sync.d.ts +28 -0
  77. package/lib/sync/processors/sync.js +26 -102
  78. package/lib/sync/processors/sync.js.map +1 -1
  79. package/lib/sync/utils.d.ts +42 -0
  80. package/lib/sync/utils.js +40 -103
  81. package/lib/sync/utils.js.map +1 -1
  82. package/lib/types.d.ts +554 -0
  83. package/lib/types.js +9 -39
  84. package/lib/types.js.map +1 -1
  85. package/lib/util.d.ts +189 -0
  86. package/lib/util.js +192 -188
  87. package/lib/util.js.map +1 -1
  88. package/lib-esm/authModeStrategies/multiAuthStrategy.js +2 -57
  89. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
  90. package/lib-esm/datastore/datastore.d.ts +59 -8
  91. package/lib-esm/datastore/datastore.js +642 -234
  92. package/lib-esm/datastore/datastore.js.map +1 -1
  93. package/lib-esm/index.d.ts +3 -2
  94. package/lib-esm/index.js +2 -1
  95. package/lib-esm/index.js.map +1 -1
  96. package/lib-esm/predicates/index.d.ts +16 -2
  97. package/lib-esm/predicates/index.js +128 -7
  98. package/lib-esm/predicates/index.js.map +1 -1
  99. package/lib-esm/predicates/next.d.ts +301 -0
  100. package/lib-esm/predicates/next.js +812 -0
  101. package/lib-esm/predicates/next.js.map +1 -0
  102. package/lib-esm/predicates/sort.js +10 -4
  103. package/lib-esm/predicates/sort.js.map +1 -1
  104. package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +2 -1
  105. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +112 -350
  106. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  107. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +7 -68
  108. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  109. package/lib-esm/storage/adapter/InMemoryStore.d.ts +1 -1
  110. package/lib-esm/storage/adapter/InMemoryStore.js +1 -52
  111. package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
  112. package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +4 -2
  113. package/lib-esm/storage/adapter/IndexedDBAdapter.js +230 -367
  114. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
  115. package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  116. package/lib-esm/storage/relationship.d.ts +140 -0
  117. package/lib-esm/storage/relationship.js +333 -0
  118. package/lib-esm/storage/relationship.js.map +1 -0
  119. package/lib-esm/storage/storage.d.ts +7 -6
  120. package/lib-esm/storage/storage.js +33 -101
  121. package/lib-esm/storage/storage.js.map +1 -1
  122. package/lib-esm/sync/datastoreConnectivity.js +1 -47
  123. package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
  124. package/lib-esm/sync/index.js +4 -76
  125. package/lib-esm/sync/index.js.map +1 -1
  126. package/lib-esm/sync/merger.js +1 -67
  127. package/lib-esm/sync/merger.js.map +1 -1
  128. package/lib-esm/sync/outbox.js +1 -74
  129. package/lib-esm/sync/outbox.js.map +1 -1
  130. package/lib-esm/sync/processors/errorMaps.js +2 -32
  131. package/lib-esm/sync/processors/errorMaps.js.map +1 -1
  132. package/lib-esm/sync/processors/mutation.js +12 -93
  133. package/lib-esm/sync/processors/mutation.js.map +1 -1
  134. package/lib-esm/sync/processors/subscription.js +6 -69
  135. package/lib-esm/sync/processors/subscription.js.map +1 -1
  136. package/lib-esm/sync/processors/sync.js +2 -75
  137. package/lib-esm/sync/processors/sync.js.map +1 -1
  138. package/lib-esm/sync/utils.d.ts +1 -1
  139. package/lib-esm/sync/utils.js +32 -95
  140. package/lib-esm/sync/utils.js.map +1 -1
  141. package/lib-esm/types.d.ts +63 -10
  142. package/lib-esm/types.js +7 -38
  143. package/lib-esm/types.js.map +1 -1
  144. package/lib-esm/util.d.ts +39 -6
  145. package/lib-esm/util.js +171 -171
  146. package/lib-esm/util.js.map +1 -1
  147. package/package.json +21 -14
  148. package/src/authModeStrategies/multiAuthStrategy.ts +2 -2
  149. package/src/datastore/datastore.ts +699 -206
  150. package/src/index.ts +4 -0
  151. package/src/predicates/index.ts +143 -17
  152. package/src/predicates/next.ts +967 -0
  153. package/src/predicates/sort.ts +8 -2
  154. package/src/storage/adapter/AsyncStorageAdapter.ts +59 -181
  155. package/src/storage/adapter/AsyncStorageDatabase.ts +16 -15
  156. package/src/storage/adapter/InMemoryStore.ts +5 -2
  157. package/src/storage/adapter/IndexedDBAdapter.ts +169 -192
  158. package/src/storage/adapter/getDefaultAdapter/index.ts +2 -2
  159. package/src/storage/relationship.ts +272 -0
  160. package/src/storage/storage.ts +56 -37
  161. package/src/sync/datastoreConnectivity.ts +4 -4
  162. package/src/sync/index.ts +22 -28
  163. package/src/sync/merger.ts +1 -1
  164. package/src/sync/outbox.ts +6 -6
  165. package/src/sync/processors/errorMaps.ts +1 -1
  166. package/src/sync/processors/mutation.ts +23 -19
  167. package/src/sync/processors/subscription.ts +20 -16
  168. package/src/sync/processors/sync.ts +17 -17
  169. package/src/sync/utils.ts +42 -48
  170. package/src/types.ts +128 -16
  171. package/src/util.ts +108 -150
  172. package/build.js +0 -5
  173. package/dist/aws-amplify-datastore.js +0 -92787
  174. package/dist/aws-amplify-datastore.js.map +0 -1
  175. package/dist/aws-amplify-datastore.min.js +0 -66
  176. package/dist/aws-amplify-datastore.min.js.map +0 -1
  177. package/index.js +0 -7
  178. package/webpack.config.dev.js +0 -6
@@ -1,62 +1,9 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- var __asyncValues = (this && this.__asyncValues) || function (o) {
38
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
39
- var m = o[Symbol.asyncIterator], i;
40
- 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);
41
- 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); }); }; }
42
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
43
- };
44
- var __values = (this && this.__values) || function(o) {
45
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
46
- if (m) return m.call(o);
47
- if (o && typeof o.length === "number") return {
48
- next: function () {
49
- if (o && i >= o.length) o = void 0;
50
- return { value: o && o[i++], done: !o };
51
- }
52
- };
53
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
54
- };
1
+ import { __asyncValues, __awaiter, __generator, __values } from "tslib";
55
2
  import { ConsoleLogger as Logger } from '@aws-amplify/core';
56
3
  import AsyncStorageDatabase from './AsyncStorageDatabase';
57
- import { ModelPredicateCreator, ModelSortPredicateCreator, } from '../../predicates';
4
+ import { ModelPredicateCreator } from '../../predicates';
58
5
  import { isPredicateObj, OpType, QueryOne, } from '../../types';
59
- import { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, exhaustiveCheck, getIndex, getIndexFromAssociation, isModelConstructor, traverseModel, validatePredicate, sortCompareFunction, keysEqual, getStorename, getIndexKeys, extractPrimaryKeyValues, IDENTIFIER_KEY_SEPARATOR, } from '../../util';
6
+ import { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, getIndex, getIndexFromAssociation, isModelConstructor, traverseModel, validatePredicate, inMemoryPagination, keysEqual, getStorename, getIndexKeys, extractPrimaryKeyValues, IDENTIFIER_KEY_SEPARATOR, } from '../../util';
60
7
  var logger = new Logger('DataStore');
61
8
  var AsyncStorageAdapter = /** @class */ (function () {
62
9
  function AsyncStorageAdapter() {
@@ -123,10 +70,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
123
70
  AsyncStorageAdapter.prototype.save = function (model, condition) {
124
71
  var e_1, _a;
125
72
  return __awaiter(this, void 0, void 0, function () {
126
- var modelConstructor, storeName, namespaceName, connectedModels, set, connectionStoreNames, keyValuesPath, fromDB, predicates, predicateObjs, type, isValid, msg, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, itemKeyValues, itemKeyValuesPath, fromDB_1, opType, modelKeyValues, e_1_1;
73
+ var modelConstructor, storeName, namespaceName, connectedModels, set, connectionStoreNames, keyValuesPath, fromDB, predicates, _b, predicateObjs, type, isValid, msg, result, connectionStoreNames_1, connectionStoreNames_1_1, resItem, storeName_1, item, instance, keys, itemKeyValues, itemKeyValuesPath, fromDB_1, opType, modelKeyValues, e_1_1;
127
74
  var _this = this;
128
- return __generator(this, function (_b) {
129
- switch (_b.label) {
75
+ return __generator(this, function (_c) {
76
+ switch (_c.label) {
130
77
  case 0:
131
78
  modelConstructor = Object.getPrototypeOf(model)
132
79
  .constructor;
@@ -144,10 +91,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
144
91
  keyValuesPath = this.getIndexKeyValuesPath(model);
145
92
  return [4 /*yield*/, this.db.get(keyValuesPath, storeName)];
146
93
  case 1:
147
- fromDB = _b.sent();
94
+ fromDB = _c.sent();
148
95
  if (condition && fromDB) {
149
96
  predicates = ModelPredicateCreator.getPredicates(condition);
150
- predicateObjs = predicates.predicates, type = predicates.type;
97
+ _b = predicates, predicateObjs = _b.predicates, type = _b.type;
151
98
  isValid = validatePredicate(fromDB, type, predicateObjs);
152
99
  if (!isValid) {
153
100
  msg = 'Conditional update failed';
@@ -156,43 +103,43 @@ var AsyncStorageAdapter = /** @class */ (function () {
156
103
  }
157
104
  }
158
105
  result = [];
159
- _b.label = 2;
106
+ _c.label = 2;
160
107
  case 2:
161
- _b.trys.push([2, 9, 10, 15]);
108
+ _c.trys.push([2, 9, 10, 15]);
162
109
  connectionStoreNames_1 = __asyncValues(connectionStoreNames);
163
- _b.label = 3;
110
+ _c.label = 3;
164
111
  case 3: return [4 /*yield*/, connectionStoreNames_1.next()];
165
112
  case 4:
166
- if (!(connectionStoreNames_1_1 = _b.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 8];
113
+ if (!(connectionStoreNames_1_1 = _c.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 8];
167
114
  resItem = connectionStoreNames_1_1.value;
168
115
  storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;
169
116
  itemKeyValues = keys.map(function (key) { return item[key]; });
170
117
  itemKeyValuesPath = itemKeyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);
171
118
  return [4 /*yield*/, this.db.get(itemKeyValuesPath, storeName_1)];
172
119
  case 5:
173
- fromDB_1 = _b.sent();
120
+ fromDB_1 = _c.sent();
174
121
  opType = fromDB_1 ? OpType.UPDATE : OpType.INSERT;
175
122
  modelKeyValues = this.getIndexKeyValuesFromModel(model);
176
123
  if (!(keysEqual(itemKeyValues, modelKeyValues) ||
177
124
  opType === OpType.INSERT)) return [3 /*break*/, 7];
178
125
  return [4 /*yield*/, this.db.save(item, storeName_1, keys, itemKeyValuesPath)];
179
126
  case 6:
180
- _b.sent();
127
+ _c.sent();
181
128
  result.push([instance, opType]);
182
- _b.label = 7;
129
+ _c.label = 7;
183
130
  case 7: return [3 /*break*/, 3];
184
131
  case 8: return [3 /*break*/, 15];
185
132
  case 9:
186
- e_1_1 = _b.sent();
133
+ e_1_1 = _c.sent();
187
134
  e_1 = { error: e_1_1 };
188
135
  return [3 /*break*/, 15];
189
136
  case 10:
190
- _b.trys.push([10, , 13, 14]);
137
+ _c.trys.push([10, , 13, 14]);
191
138
  if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 12];
192
139
  return [4 /*yield*/, _a.call(connectionStoreNames_1)];
193
140
  case 11:
194
- _b.sent();
195
- _b.label = 12;
141
+ _c.sent();
142
+ _c.label = 12;
196
143
  case 12: return [3 /*break*/, 14];
197
144
  case 13:
198
145
  if (e_1) throw e_1.error;
@@ -204,196 +151,25 @@ var AsyncStorageAdapter = /** @class */ (function () {
204
151
  });
205
152
  };
206
153
  AsyncStorageAdapter.prototype.load = function (namespaceName, srcModelName, records) {
207
- var records_1, records_1_1, records_2, records_2_1;
208
- var e_2, _a, e_3, _b, e_4, _c;
209
154
  return __awaiter(this, void 0, void 0, function () {
210
- var namespace, relations, connectionStoreNames, modelConstructor, relations_1, relations_1_1, relation, fieldName, modelName, targetName, targetNames, relationType, storeName, modelConstructor_1, _d, recordItem, getByFields, allPresent, keys, connectionRecord, getByfield, key, connectionRecord, e_3_1, recordItem, allPresent, keys, connectionRecord, key, connectionRecord, e_4_1, e_2_1;
155
+ var namespace, relations, connectionStoreNames, modelConstructor;
211
156
  var _this = this;
212
- return __generator(this, function (_e) {
213
- switch (_e.label) {
214
- case 0:
215
- namespace = this.schema.namespaces[namespaceName];
216
- relations = namespace.relationships[srcModelName].relationTypes;
217
- connectionStoreNames = relations.map(function (_a) {
218
- var modelName = _a.modelName;
219
- return getStorename(namespaceName, modelName);
220
- });
221
- modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
222
- if (connectionStoreNames.length === 0) {
223
- return [2 /*return*/, records.map(function (record) {
224
- return _this.modelInstanceCreator(modelConstructor, record);
225
- })];
226
- }
227
- _e.label = 1;
228
- case 1:
229
- _e.trys.push([1, 38, 39, 44]);
230
- relations_1 = __asyncValues(relations);
231
- _e.label = 2;
232
- case 2: return [4 /*yield*/, relations_1.next()];
233
- case 3:
234
- if (!(relations_1_1 = _e.sent(), !relations_1_1.done)) return [3 /*break*/, 37];
235
- relation = relations_1_1.value;
236
- fieldName = relation.fieldName, modelName = relation.modelName, targetName = relation.targetName, targetNames = relation.targetNames, relationType = relation.relationType;
237
- storeName = getStorename(namespaceName, modelName);
238
- modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, modelName);
239
- _d = relationType;
240
- switch (_d) {
241
- case 'HAS_ONE': return [3 /*break*/, 4];
242
- case 'BELONGS_TO': return [3 /*break*/, 19];
243
- case 'HAS_MANY': return [3 /*break*/, 34];
244
- }
245
- return [3 /*break*/, 35];
246
- case 4:
247
- _e.trys.push([4, 12, 13, 18]);
248
- records_1 = __asyncValues(records);
249
- _e.label = 5;
250
- case 5: return [4 /*yield*/, records_1.next()];
251
- case 6:
252
- if (!(records_1_1 = _e.sent(), !records_1_1.done)) return [3 /*break*/, 11];
253
- recordItem = records_1_1.value;
254
- if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 8];
255
- getByFields = [];
256
- allPresent = void 0;
257
- // iterate through all targetnames to make sure they are all present in the recordItem
258
- allPresent = targetNames.every(function (targetName) {
259
- return recordItem[targetName] != null;
260
- });
261
- if (!allPresent) {
262
- return [3 /*break*/, 11];
263
- }
264
- getByFields = targetNames;
265
- keys = getByFields
266
- .map(function (getByField) { return recordItem[getByField]; })
267
- .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);
268
- return [4 /*yield*/, this.db.get(keys, storeName)];
269
- case 7:
270
- connectionRecord = _e.sent();
271
- recordItem[fieldName] =
272
- connectionRecord &&
273
- this.modelInstanceCreator(modelConstructor_1, connectionRecord);
274
- return [3 /*break*/, 10];
275
- case 8:
276
- getByfield = recordItem[targetName]
277
- ? targetName
278
- : fieldName;
279
- if (!recordItem[getByfield])
280
- return [3 /*break*/, 11];
281
- key = recordItem[getByfield];
282
- return [4 /*yield*/, this.db.get(key, storeName)];
283
- case 9:
284
- connectionRecord = _e.sent();
285
- recordItem[fieldName] =
286
- connectionRecord &&
287
- this.modelInstanceCreator(modelConstructor_1, connectionRecord);
288
- _e.label = 10;
289
- case 10: return [3 /*break*/, 5];
290
- case 11: return [3 /*break*/, 18];
291
- case 12:
292
- e_3_1 = _e.sent();
293
- e_3 = { error: e_3_1 };
294
- return [3 /*break*/, 18];
295
- case 13:
296
- _e.trys.push([13, , 16, 17]);
297
- if (!(records_1_1 && !records_1_1.done && (_b = records_1.return))) return [3 /*break*/, 15];
298
- return [4 /*yield*/, _b.call(records_1)];
299
- case 14:
300
- _e.sent();
301
- _e.label = 15;
302
- case 15: return [3 /*break*/, 17];
303
- case 16:
304
- if (e_3) throw e_3.error;
305
- return [7 /*endfinally*/];
306
- case 17: return [7 /*endfinally*/];
307
- case 18: return [3 /*break*/, 36];
308
- case 19:
309
- _e.trys.push([19, 27, 28, 33]);
310
- records_2 = __asyncValues(records);
311
- _e.label = 20;
312
- case 20: return [4 /*yield*/, records_2.next()];
313
- case 21:
314
- if (!(records_2_1 = _e.sent(), !records_2_1.done)) return [3 /*break*/, 26];
315
- recordItem = records_2_1.value;
316
- if (!(targetNames === null || targetNames === void 0 ? void 0 : targetNames.length)) return [3 /*break*/, 23];
317
- allPresent = void 0;
318
- // iterate through all targetnames to make sure they are all present in the recordItem
319
- allPresent = targetNames.every(function (targetName) {
320
- return recordItem[targetName] != null;
321
- });
322
- // If not present, there is not yet a connected record
323
- if (!allPresent) {
324
- return [3 /*break*/, 26];
325
- }
326
- keys = targetNames
327
- .map(function (targetName) { return recordItem[targetName]; })
328
- .join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);
329
- return [4 /*yield*/, this.db.get(keys, storeName)];
330
- case 22:
331
- connectionRecord = _e.sent();
332
- recordItem[fieldName] =
333
- connectionRecord &&
334
- this.modelInstanceCreator(modelConstructor_1, connectionRecord);
335
- targetNames === null || targetNames === void 0 ? void 0 : targetNames.map(function (targetName) {
336
- delete recordItem[targetName];
337
- });
338
- return [3 /*break*/, 25];
339
- case 23:
340
- if (!recordItem[targetName]) return [3 /*break*/, 25];
341
- key = recordItem[targetName];
342
- return [4 /*yield*/, this.db.get(key, storeName)];
343
- case 24:
344
- connectionRecord = _e.sent();
345
- recordItem[fieldName] =
346
- connectionRecord &&
347
- this.modelInstanceCreator(modelConstructor_1, connectionRecord);
348
- delete recordItem[targetName];
349
- _e.label = 25;
350
- case 25: return [3 /*break*/, 20];
351
- case 26: return [3 /*break*/, 33];
352
- case 27:
353
- e_4_1 = _e.sent();
354
- e_4 = { error: e_4_1 };
355
- return [3 /*break*/, 33];
356
- case 28:
357
- _e.trys.push([28, , 31, 32]);
358
- if (!(records_2_1 && !records_2_1.done && (_c = records_2.return))) return [3 /*break*/, 30];
359
- return [4 /*yield*/, _c.call(records_2)];
360
- case 29:
361
- _e.sent();
362
- _e.label = 30;
363
- case 30: return [3 /*break*/, 32];
364
- case 31:
365
- if (e_4) throw e_4.error;
366
- return [7 /*endfinally*/];
367
- case 32: return [7 /*endfinally*/];
368
- case 33: return [3 /*break*/, 36];
369
- case 34:
370
- // TODO: Lazy loading
371
- return [3 /*break*/, 36];
372
- case 35:
373
- exhaustiveCheck(relationType);
374
- return [3 /*break*/, 36];
375
- case 36: return [3 /*break*/, 2];
376
- case 37: return [3 /*break*/, 44];
377
- case 38:
378
- e_2_1 = _e.sent();
379
- e_2 = { error: e_2_1 };
380
- return [3 /*break*/, 44];
381
- case 39:
382
- _e.trys.push([39, , 42, 43]);
383
- if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 41];
384
- return [4 /*yield*/, _a.call(relations_1)];
385
- case 40:
386
- _e.sent();
387
- _e.label = 41;
388
- case 41: return [3 /*break*/, 43];
389
- case 42:
390
- if (e_2) throw e_2.error;
391
- return [7 /*endfinally*/];
392
- case 43: return [7 /*endfinally*/];
393
- case 44: return [2 /*return*/, records.map(function (record) {
157
+ return __generator(this, function (_a) {
158
+ namespace = this.schema.namespaces[namespaceName];
159
+ relations = namespace.relationships[srcModelName].relationTypes;
160
+ connectionStoreNames = relations.map(function (_a) {
161
+ var modelName = _a.modelName;
162
+ return getStorename(namespaceName, modelName);
163
+ });
164
+ modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
165
+ if (connectionStoreNames.length === 0) {
166
+ return [2 /*return*/, records.map(function (record) {
394
167
  return _this.modelInstanceCreator(modelConstructor, record);
395
168
  })];
396
169
  }
170
+ return [2 /*return*/, records.map(function (record) {
171
+ return _this.modelInstanceCreator(modelConstructor, record);
172
+ })];
397
173
  });
398
174
  });
399
175
  };
@@ -438,7 +214,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
438
214
  });
439
215
  }); })()];
440
216
  case 1:
441
- records = _a.sent();
217
+ records = (_a.sent());
442
218
  return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];
443
219
  case 2: return [2 /*return*/, _a.sent()];
444
220
  }
@@ -469,7 +245,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
469
245
  });
470
246
  };
471
247
  AsyncStorageAdapter.prototype.keyValueFromPredicate = function (predicates, keys) {
472
- var e_5, _a;
248
+ var e_2, _a;
473
249
  var predicateObjs = predicates.predicates;
474
250
  if (predicateObjs.length !== keys.length) {
475
251
  return;
@@ -485,12 +261,12 @@ var AsyncStorageAdapter = /** @class */ (function () {
485
261
  _loop_1(key);
486
262
  }
487
263
  }
488
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
264
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
489
265
  finally {
490
266
  try {
491
267
  if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
492
268
  }
493
- finally { if (e_5) throw e_5.error; }
269
+ finally { if (e_2) throw e_2.error; }
494
270
  }
495
271
  return keyValues.length === keys.length
496
272
  ? keyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)
@@ -515,20 +291,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
515
291
  });
516
292
  };
517
293
  AsyncStorageAdapter.prototype.inMemoryPagination = function (records, pagination) {
518
- if (pagination && records.length > 1) {
519
- if (pagination.sort) {
520
- var sortPredicates = ModelSortPredicateCreator.getPredicates(pagination.sort);
521
- if (sortPredicates.length) {
522
- var compareFn = sortCompareFunction(sortPredicates);
523
- records.sort(compareFn);
524
- }
525
- }
526
- var _a = pagination.page, page = _a === void 0 ? 0 : _a, _b = pagination.limit, limit = _b === void 0 ? 0 : _b;
527
- var start = Math.max(0, page * limit) || 0;
528
- var end = limit > 0 ? start + limit : records.length;
529
- return records.slice(start, end);
530
- }
531
- return records;
294
+ return inMemoryPagination(records, pagination);
532
295
  };
533
296
  AsyncStorageAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
534
297
  if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }
@@ -548,9 +311,9 @@ var AsyncStorageAdapter = /** @class */ (function () {
548
311
  };
549
312
  AsyncStorageAdapter.prototype.delete = function (modelOrModelConstructor, condition) {
550
313
  return __awaiter(this, void 0, void 0, function () {
551
- var deleteQueue, modelConstructor, nameSpace, models, relations, deletedModels, deletedModels, model, modelConstructor, namespaceName, storeName, keyValuePath, fromDB, msg, predicates, predicateObjs, type, isValid, msg, relations, relations, deletedModels;
552
- return __generator(this, function (_a) {
553
- switch (_a.label) {
314
+ var deleteQueue, modelConstructor, nameSpace, models, relations, deletedModels, deletedModels, model, modelConstructor, nameSpace, storeName, keyValuePath, fromDB, msg, predicates, _a, predicateObjs, type, isValid, msg, relations, relations, deletedModels;
315
+ return __generator(this, function (_b) {
316
+ switch (_b.label) {
554
317
  case 0:
555
318
  deleteQueue = [];
556
319
  if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 8];
@@ -558,16 +321,16 @@ var AsyncStorageAdapter = /** @class */ (function () {
558
321
  nameSpace = this.namespaceResolver(modelConstructor);
559
322
  return [4 /*yield*/, this.query(modelConstructor, condition)];
560
323
  case 1:
561
- models = _a.sent();
324
+ models = _b.sent();
562
325
  relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name]
563
326
  .relationTypes;
564
327
  if (!(condition !== undefined)) return [3 /*break*/, 4];
565
328
  return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];
566
329
  case 2:
567
- _a.sent();
330
+ _b.sent();
568
331
  return [4 /*yield*/, this.deleteItem(deleteQueue)];
569
332
  case 3:
570
- _a.sent();
333
+ _b.sent();
571
334
  deletedModels = deleteQueue.reduce(function (acc, _a) {
572
335
  var items = _a.items;
573
336
  return acc.concat(items);
@@ -575,10 +338,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
575
338
  return [2 /*return*/, [models, deletedModels]];
576
339
  case 4: return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];
577
340
  case 5:
578
- _a.sent();
341
+ _b.sent();
579
342
  return [4 /*yield*/, this.deleteItem(deleteQueue)];
580
343
  case 6:
581
- _a.sent();
344
+ _b.sent();
582
345
  deletedModels = deleteQueue.reduce(function (acc, _a) {
583
346
  var items = _a.items;
584
347
  return acc.concat(items);
@@ -589,40 +352,40 @@ var AsyncStorageAdapter = /** @class */ (function () {
589
352
  model = modelOrModelConstructor;
590
353
  modelConstructor = Object.getPrototypeOf(model)
591
354
  .constructor;
592
- namespaceName = this.namespaceResolver(modelConstructor);
355
+ nameSpace = this.namespaceResolver(modelConstructor);
593
356
  storeName = this.getStorenameForModel(modelConstructor);
594
357
  if (!condition) return [3 /*break*/, 11];
595
358
  keyValuePath = this.getIndexKeyValuesPath(model);
596
359
  return [4 /*yield*/, this.db.get(keyValuePath, storeName)];
597
360
  case 9:
598
- fromDB = _a.sent();
361
+ fromDB = _b.sent();
599
362
  if (fromDB === undefined) {
600
363
  msg = 'Model instance not found in storage';
601
364
  logger.warn(msg, { model: model });
602
365
  return [2 /*return*/, [[model], []]];
603
366
  }
604
367
  predicates = ModelPredicateCreator.getPredicates(condition);
605
- predicateObjs = predicates.predicates, type = predicates.type;
368
+ _a = predicates, predicateObjs = _a.predicates, type = _a.type;
606
369
  isValid = validatePredicate(fromDB, type, predicateObjs);
607
370
  if (!isValid) {
608
371
  msg = 'Conditional update failed';
609
372
  logger.error(msg, { model: fromDB, condition: predicateObjs });
610
373
  throw new Error(msg);
611
374
  }
612
- relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
613
- return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
375
+ relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name].relationTypes;
376
+ return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, nameSpace, deleteQueue)];
614
377
  case 10:
615
- _a.sent();
378
+ _b.sent();
616
379
  return [3 /*break*/, 13];
617
380
  case 11:
618
- relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
619
- return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
381
+ relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name].relationTypes;
382
+ return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, nameSpace, deleteQueue)];
620
383
  case 12:
621
- _a.sent();
622
- _a.label = 13;
384
+ _b.sent();
385
+ _b.label = 13;
623
386
  case 13: return [4 /*yield*/, this.deleteItem(deleteQueue)];
624
387
  case 14:
625
- _a.sent();
388
+ _b.sent();
626
389
  deletedModels = deleteQueue.reduce(function (acc, _a) {
627
390
  var items = _a.items;
628
391
  return acc.concat(items);
@@ -634,71 +397,70 @@ var AsyncStorageAdapter = /** @class */ (function () {
634
397
  });
635
398
  };
636
399
  AsyncStorageAdapter.prototype.deleteItem = function (deleteQueue) {
637
- var deleteQueue_1, deleteQueue_1_1;
638
- var e_6, _a, e_7, _b;
400
+ var e_3, _a, e_4, _b;
639
401
  return __awaiter(this, void 0, void 0, function () {
640
- var deleteItem, storeName, items, items_1, items_1_1, item, keyValuesPath, e_7_1, e_6_1;
641
- return __generator(this, function (_c) {
642
- switch (_c.label) {
402
+ var _c, _d, deleteItem, storeName, items, items_1, items_1_1, item, keyValuesPath, e_4_1, e_3_1;
403
+ return __generator(this, function (_e) {
404
+ switch (_e.label) {
643
405
  case 0:
644
- _c.trys.push([0, 17, 18, 23]);
645
- deleteQueue_1 = __asyncValues(deleteQueue);
646
- _c.label = 1;
647
- case 1: return [4 /*yield*/, deleteQueue_1.next()];
406
+ _e.trys.push([0, 17, 18, 23]);
407
+ _c = __asyncValues(deleteQueue);
408
+ _e.label = 1;
409
+ case 1: return [4 /*yield*/, _c.next()];
648
410
  case 2:
649
- if (!(deleteQueue_1_1 = _c.sent(), !deleteQueue_1_1.done)) return [3 /*break*/, 16];
650
- deleteItem = deleteQueue_1_1.value;
411
+ if (!(_d = _e.sent(), !_d.done)) return [3 /*break*/, 16];
412
+ deleteItem = _d.value;
651
413
  storeName = deleteItem.storeName, items = deleteItem.items;
652
- _c.label = 3;
414
+ _e.label = 3;
653
415
  case 3:
654
- _c.trys.push([3, 9, 10, 15]);
416
+ _e.trys.push([3, 9, 10, 15]);
655
417
  items_1 = __asyncValues(items);
656
- _c.label = 4;
418
+ _e.label = 4;
657
419
  case 4: return [4 /*yield*/, items_1.next()];
658
420
  case 5:
659
- if (!(items_1_1 = _c.sent(), !items_1_1.done)) return [3 /*break*/, 8];
421
+ if (!(items_1_1 = _e.sent(), !items_1_1.done)) return [3 /*break*/, 8];
660
422
  item = items_1_1.value;
661
423
  if (!item) return [3 /*break*/, 7];
662
424
  if (!(typeof item === 'object')) return [3 /*break*/, 7];
663
425
  keyValuesPath = this.getIndexKeyValuesPath(item);
664
426
  return [4 /*yield*/, this.db.delete(keyValuesPath, storeName)];
665
427
  case 6:
666
- _c.sent();
667
- _c.label = 7;
428
+ _e.sent();
429
+ _e.label = 7;
668
430
  case 7: return [3 /*break*/, 4];
669
431
  case 8: return [3 /*break*/, 15];
670
432
  case 9:
671
- e_7_1 = _c.sent();
672
- e_7 = { error: e_7_1 };
433
+ e_4_1 = _e.sent();
434
+ e_4 = { error: e_4_1 };
673
435
  return [3 /*break*/, 15];
674
436
  case 10:
675
- _c.trys.push([10, , 13, 14]);
437
+ _e.trys.push([10, , 13, 14]);
676
438
  if (!(items_1_1 && !items_1_1.done && (_b = items_1.return))) return [3 /*break*/, 12];
677
439
  return [4 /*yield*/, _b.call(items_1)];
678
440
  case 11:
679
- _c.sent();
680
- _c.label = 12;
441
+ _e.sent();
442
+ _e.label = 12;
681
443
  case 12: return [3 /*break*/, 14];
682
444
  case 13:
683
- if (e_7) throw e_7.error;
445
+ if (e_4) throw e_4.error;
684
446
  return [7 /*endfinally*/];
685
447
  case 14: return [7 /*endfinally*/];
686
448
  case 15: return [3 /*break*/, 1];
687
449
  case 16: return [3 /*break*/, 23];
688
450
  case 17:
689
- e_6_1 = _c.sent();
690
- e_6 = { error: e_6_1 };
451
+ e_3_1 = _e.sent();
452
+ e_3 = { error: e_3_1 };
691
453
  return [3 /*break*/, 23];
692
454
  case 18:
693
- _c.trys.push([18, , 21, 22]);
694
- if (!(deleteQueue_1_1 && !deleteQueue_1_1.done && (_a = deleteQueue_1.return))) return [3 /*break*/, 20];
695
- return [4 /*yield*/, _a.call(deleteQueue_1)];
455
+ _e.trys.push([18, , 21, 22]);
456
+ if (!(_d && !_d.done && (_a = _c.return))) return [3 /*break*/, 20];
457
+ return [4 /*yield*/, _a.call(_c)];
696
458
  case 19:
697
- _c.sent();
698
- _c.label = 20;
459
+ _e.sent();
460
+ _e.label = 20;
699
461
  case 20: return [3 /*break*/, 22];
700
462
  case 21:
701
- if (e_6) throw e_6.error;
463
+ if (e_3) throw e_3.error;
702
464
  return [7 /*endfinally*/];
703
465
  case 22: return [7 /*endfinally*/];
704
466
  case 23: return [2 /*return*/];
@@ -715,21 +477,21 @@ var AsyncStorageAdapter = /** @class */ (function () {
715
477
  * @param deleteQueue
716
478
  */
717
479
  AsyncStorageAdapter.prototype.deleteTraverse = function (relations, models, srcModel, nameSpace, deleteQueue) {
718
- var relations_2, relations_2_1, models_1, models_1_1, models_2, models_2_1;
719
- var e_8, _a, e_9, _b, e_10, _c;
480
+ var relations_1, relations_1_1, models_1, models_1_1, models_2, models_2_1;
481
+ var e_5, _a, e_6, _b, e_7, _c;
720
482
  return __awaiter(this, void 0, void 0, function () {
721
- var rel, relationType, modelName, targetName, targetNames, associatedWith, storeName, index, _d, model, hasOneIndex_1, hasConnectedModelFields, keyValuesPath, values_1, isUnidirectionalConnection, allRecords, recordToDelete, hasOneIndex_2, hasOneCustomField, keyValuesPath, value_1, allRecords, recordToDelete, e_9_1, model, keyValues, allRecords, indices, childrenArray, e_10_1, e_8_1;
483
+ var rel, relationType, modelName, targetName, targetNames, associatedWith, storeName, index, _d, model, hasOneIndex_1, hasConnectedModelFields, keyValuesPath, values_1, isUnidirectionalConnection, allRecords, recordToDelete, hasOneIndex_2, hasOneCustomField, keyValuesPath, value_1, allRecords, recordToDelete, e_6_1, model, keyValues, allRecords, indices, childrenArray, e_7_1, e_5_1;
722
484
  var _this = this;
723
485
  return __generator(this, function (_e) {
724
486
  switch (_e.label) {
725
487
  case 0:
726
488
  _e.trys.push([0, 38, 39, 44]);
727
- relations_2 = __asyncValues(relations);
489
+ relations_1 = __asyncValues(relations);
728
490
  _e.label = 1;
729
- case 1: return [4 /*yield*/, relations_2.next()];
491
+ case 1: return [4 /*yield*/, relations_1.next()];
730
492
  case 2:
731
- if (!(relations_2_1 = _e.sent(), !relations_2_1.done)) return [3 /*break*/, 37];
732
- rel = relations_2_1.value;
493
+ if (!(relations_1_1 = _e.sent(), !relations_1_1.done)) return [3 /*break*/, 37];
494
+ rel = relations_1_1.value;
733
495
  relationType = rel.relationType, modelName = rel.modelName, targetName = rel.targetName, targetNames = rel.targetNames, associatedWith = rel.associatedWith;
734
496
  storeName = getStorename(nameSpace, modelName);
735
497
  index = getIndex(this.schema.namespaces[nameSpace].relationships[modelName]
@@ -772,7 +534,9 @@ var AsyncStorageAdapter = /** @class */ (function () {
772
534
  isUnidirectionalConnection = hasOneIndex_1 === associatedWith;
773
535
  if (hasConnectedModelFields && isUnidirectionalConnection) {
774
536
  // Values will be that of the child model
775
- values_1 = targetNames.map(function (targetName) { return model[targetName]; });
537
+ values_1 = targetNames
538
+ .filter(function (targetName) { var _a; return (_a = model[targetName]) !== null && _a !== void 0 ? _a : false; })
539
+ .map(function (targetName) { return model[targetName]; });
776
540
  }
777
541
  else {
778
542
  // values will be that of the parent model
@@ -828,8 +592,8 @@ var AsyncStorageAdapter = /** @class */ (function () {
828
592
  case 11: return [3 /*break*/, 4];
829
593
  case 12: return [3 /*break*/, 19];
830
594
  case 13:
831
- e_9_1 = _e.sent();
832
- e_9 = { error: e_9_1 };
595
+ e_6_1 = _e.sent();
596
+ e_6 = { error: e_6_1 };
833
597
  return [3 /*break*/, 19];
834
598
  case 14:
835
599
  _e.trys.push([14, , 17, 18]);
@@ -840,7 +604,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
840
604
  _e.label = 16;
841
605
  case 16: return [3 /*break*/, 18];
842
606
  case 17:
843
- if (e_9) throw e_9.error;
607
+ if (e_6) throw e_6.error;
844
608
  return [7 /*endfinally*/];
845
609
  case 18: return [7 /*endfinally*/];
846
610
  case 19: return [3 /*break*/, 36];
@@ -868,8 +632,8 @@ var AsyncStorageAdapter = /** @class */ (function () {
868
632
  case 25: return [3 /*break*/, 21];
869
633
  case 26: return [3 /*break*/, 33];
870
634
  case 27:
871
- e_10_1 = _e.sent();
872
- e_10 = { error: e_10_1 };
635
+ e_7_1 = _e.sent();
636
+ e_7 = { error: e_7_1 };
873
637
  return [3 /*break*/, 33];
874
638
  case 28:
875
639
  _e.trys.push([28, , 31, 32]);
@@ -880,32 +644,30 @@ var AsyncStorageAdapter = /** @class */ (function () {
880
644
  _e.label = 30;
881
645
  case 30: return [3 /*break*/, 32];
882
646
  case 31:
883
- if (e_10) throw e_10.error;
647
+ if (e_7) throw e_7.error;
884
648
  return [7 /*endfinally*/];
885
649
  case 32: return [7 /*endfinally*/];
886
650
  case 33: return [3 /*break*/, 36];
887
651
  case 34:
888
652
  // Intentionally blank
889
653
  return [3 /*break*/, 36];
890
- case 35:
891
- exhaustiveCheck(relationType);
892
- return [3 /*break*/, 36];
654
+ case 35: throw new Error("Invalid relationType " + relationType);
893
655
  case 36: return [3 /*break*/, 1];
894
656
  case 37: return [3 /*break*/, 44];
895
657
  case 38:
896
- e_8_1 = _e.sent();
897
- e_8 = { error: e_8_1 };
658
+ e_5_1 = _e.sent();
659
+ e_5 = { error: e_5_1 };
898
660
  return [3 /*break*/, 44];
899
661
  case 39:
900
662
  _e.trys.push([39, , 42, 43]);
901
- if (!(relations_2_1 && !relations_2_1.done && (_a = relations_2.return))) return [3 /*break*/, 41];
902
- return [4 /*yield*/, _a.call(relations_2)];
663
+ if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 41];
664
+ return [4 /*yield*/, _a.call(relations_1)];
903
665
  case 40:
904
666
  _e.sent();
905
667
  _e.label = 41;
906
668
  case 41: return [3 /*break*/, 43];
907
669
  case 42:
908
- if (e_8) throw e_8.error;
670
+ if (e_5) throw e_5.error;
909
671
  return [7 /*endfinally*/];
910
672
  case 43: return [7 /*endfinally*/];
911
673
  case 44:
@@ -937,7 +699,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
937
699
  AsyncStorageAdapter.prototype.batchSave = function (modelConstructor, items) {
938
700
  return __awaiter(this, void 0, void 0, function () {
939
701
  var modelName, namespaceName, storeName, keys, batch, _loop_2, this_1, items_2, items_2_1, item;
940
- var e_11, _a;
702
+ var e_8, _a;
941
703
  var _this = this;
942
704
  return __generator(this, function (_b) {
943
705
  switch (_b.label) {
@@ -965,12 +727,12 @@ var AsyncStorageAdapter = /** @class */ (function () {
965
727
  _loop_2(item);
966
728
  }
967
729
  }
968
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
730
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
969
731
  finally {
970
732
  try {
971
733
  if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);
972
734
  }
973
- finally { if (e_11) throw e_11.error; }
735
+ finally { if (e_8) throw e_8.error; }
974
736
  }
975
737
  return [4 /*yield*/, this.db.batchSave(storeName, batch, keys)];
976
738
  case 1: return [2 /*return*/, _b.sent()];