@aws-amplify/datastore 3.14.5-unstable.4 → 3.14.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/build.js +5 -0
- package/dist/aws-amplify-datastore.js +92626 -0
- package/dist/aws-amplify-datastore.js.map +1 -0
- package/dist/aws-amplify-datastore.min.js +65 -0
- package/dist/aws-amplify-datastore.min.js.map +1 -0
- package/index.js +7 -0
- package/lib/authModeStrategies/multiAuthStrategy.js +64 -6
- package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib/datastore/datastore.js +297 -703
- package/lib/datastore/datastore.js.map +1 -1
- package/lib/index.js +4 -6
- package/lib/index.js.map +1 -1
- package/lib/predicates/index.js +6 -127
- package/lib/predicates/index.js.map +1 -1
- package/lib/predicates/sort.js +4 -10
- package/lib/predicates/sort.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js +381 -138
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageDatabase.js +98 -37
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.js +67 -16
- package/lib/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.native.js +4 -2
- package/lib/storage/adapter/InMemoryStore.native.js.map +1 -1
- package/lib/storage/adapter/IndexedDBAdapter.js +420 -272
- package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.js +5 -3
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -2
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/lib/storage/storage.js +143 -72
- package/lib/storage/storage.js.map +1 -1
- package/lib/sync/datastoreConnectivity.js +55 -6
- package/lib/sync/datastoreConnectivity.js.map +1 -1
- package/lib/sync/datastoreReachability/index.native.js +4 -2
- package/lib/sync/datastoreReachability/index.native.js.map +1 -1
- package/lib/sync/index.js +124 -49
- package/lib/sync/index.js.map +1 -1
- package/lib/sync/merger.js +74 -8
- package/lib/sync/merger.js.map +1 -1
- package/lib/sync/outbox.js +97 -24
- package/lib/sync/outbox.js.map +1 -1
- package/lib/sync/processors/errorMaps.js +35 -5
- package/lib/sync/processors/errorMaps.js.map +1 -1
- package/lib/sync/processors/mutation.js +131 -47
- package/lib/sync/processors/mutation.js.map +1 -1
- package/lib/sync/processors/subscription.js +102 -29
- package/lib/sync/processors/subscription.js.map +1 -1
- package/lib/sync/processors/sync.js +102 -26
- package/lib/sync/processors/sync.js.map +1 -1
- package/lib/sync/utils.js +103 -40
- package/lib/sync/utils.js.map +1 -1
- package/lib/types.js +39 -9
- package/lib/types.js.map +1 -1
- package/lib/util.js +188 -192
- package/lib/util.js.map +1 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +57 -2
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib-esm/datastore/datastore.d.ts +8 -59
- package/lib-esm/datastore/datastore.js +234 -642
- package/lib-esm/datastore/datastore.js.map +1 -1
- package/lib-esm/index.d.ts +2 -3
- package/lib-esm/index.js +1 -2
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/predicates/index.d.ts +2 -16
- package/lib-esm/predicates/index.js +7 -128
- package/lib-esm/predicates/index.js.map +1 -1
- package/lib-esm/predicates/sort.js +4 -10
- package/lib-esm/predicates/sort.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -2
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +349 -109
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +68 -7
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib-esm/storage/adapter/InMemoryStore.d.ts +1 -1
- package/lib-esm/storage/adapter/InMemoryStore.js +52 -1
- package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +2 -4
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +368 -227
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/lib-esm/storage/storage.d.ts +6 -7
- package/lib-esm/storage/storage.js +101 -33
- package/lib-esm/storage/storage.js.map +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +47 -1
- package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
- package/lib-esm/sync/index.js +76 -4
- package/lib-esm/sync/index.js.map +1 -1
- package/lib-esm/sync/merger.js +67 -1
- package/lib-esm/sync/merger.js.map +1 -1
- package/lib-esm/sync/outbox.js +74 -1
- package/lib-esm/sync/outbox.js.map +1 -1
- package/lib-esm/sync/processors/errorMaps.js +32 -2
- package/lib-esm/sync/processors/errorMaps.js.map +1 -1
- package/lib-esm/sync/processors/mutation.js +93 -12
- package/lib-esm/sync/processors/mutation.js.map +1 -1
- package/lib-esm/sync/processors/subscription.js +69 -6
- package/lib-esm/sync/processors/subscription.js.map +1 -1
- package/lib-esm/sync/processors/sync.js +75 -2
- package/lib-esm/sync/processors/sync.js.map +1 -1
- package/lib-esm/sync/utils.d.ts +1 -1
- package/lib-esm/sync/utils.js +95 -32
- package/lib-esm/sync/utils.js.map +1 -1
- package/lib-esm/types.d.ts +10 -63
- package/lib-esm/types.js +38 -7
- package/lib-esm/types.js.map +1 -1
- package/lib-esm/util.d.ts +6 -39
- package/lib-esm/util.js +171 -171
- package/lib-esm/util.js.map +1 -1
- package/package.json +14 -21
- package/src/authModeStrategies/multiAuthStrategy.ts +2 -2
- package/src/datastore/datastore.ts +206 -699
- package/src/index.ts +0 -4
- package/src/predicates/index.ts +17 -143
- package/src/predicates/sort.ts +2 -8
- package/src/storage/adapter/AsyncStorageAdapter.ts +178 -56
- package/src/storage/adapter/AsyncStorageDatabase.ts +15 -16
- package/src/storage/adapter/InMemoryStore.ts +2 -5
- package/src/storage/adapter/IndexedDBAdapter.ts +191 -166
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -2
- package/src/storage/storage.ts +37 -56
- package/src/sync/datastoreConnectivity.ts +4 -4
- package/src/sync/index.ts +28 -22
- package/src/sync/merger.ts +1 -1
- package/src/sync/outbox.ts +6 -6
- package/src/sync/processors/errorMaps.ts +1 -1
- package/src/sync/processors/mutation.ts +19 -23
- package/src/sync/processors/subscription.ts +16 -20
- package/src/sync/processors/sync.ts +17 -17
- package/src/sync/utils.ts +48 -42
- package/src/types.ts +16 -128
- package/src/util.ts +150 -108
- package/webpack.config.dev.js +6 -0
- package/lib/authModeStrategies/defaultAuthStrategy.d.ts +0 -2
- package/lib/authModeStrategies/index.d.ts +0 -2
- package/lib/authModeStrategies/multiAuthStrategy.d.ts +0 -13
- package/lib/datastore/datastore.d.ts +0 -207
- package/lib/index.d.ts +0 -16
- package/lib/predicates/index.d.ts +0 -30
- package/lib/predicates/next.d.ts +0 -301
- package/lib/predicates/next.js +0 -816
- package/lib/predicates/next.js.map +0 -1
- package/lib/predicates/sort.d.ts +0 -8
- package/lib/ssr/index.d.ts +0 -3
- package/lib/storage/adapter/AsyncStorageAdapter.d.ts +0 -42
- package/lib/storage/adapter/AsyncStorageDatabase.d.ts +0 -39
- package/lib/storage/adapter/InMemoryStore.d.ts +0 -11
- package/lib/storage/adapter/InMemoryStore.native.d.ts +0 -1
- package/lib/storage/adapter/IndexedDBAdapter.d.ts +0 -61
- package/lib/storage/adapter/getDefaultAdapter/index.d.ts +0 -3
- package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -3
- package/lib/storage/adapter/index.d.ts +0 -9
- package/lib/storage/relationship.d.ts +0 -140
- package/lib/storage/relationship.js +0 -335
- package/lib/storage/relationship.js.map +0 -1
- package/lib/storage/storage.d.ts +0 -50
- package/lib/sync/datastoreConnectivity.d.ts +0 -16
- package/lib/sync/datastoreReachability/index.d.ts +0 -3
- package/lib/sync/datastoreReachability/index.native.d.ts +0 -3
- package/lib/sync/index.d.ts +0 -89
- package/lib/sync/merger.d.ts +0 -17
- package/lib/sync/outbox.d.ts +0 -27
- package/lib/sync/processors/errorMaps.d.ts +0 -17
- package/lib/sync/processors/mutation.d.ts +0 -58
- package/lib/sync/processors/subscription.d.ts +0 -33
- package/lib/sync/processors/sync.d.ts +0 -28
- package/lib/sync/utils.d.ts +0 -42
- package/lib/types.d.ts +0 -554
- package/lib/util.d.ts +0 -189
- package/lib-esm/predicates/next.d.ts +0 -301
- package/lib-esm/predicates/next.js +0 -812
- package/lib-esm/predicates/next.js.map +0 -1
- package/lib-esm/storage/relationship.d.ts +0 -140
- package/lib-esm/storage/relationship.js +0 -333
- package/lib-esm/storage/relationship.js.map +0 -1
- package/src/predicates/next.ts +0 -967
- package/src/storage/relationship.ts +0 -272
|
@@ -1,9 +1,62 @@
|
|
|
1
|
-
|
|
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
|
+
};
|
|
2
55
|
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
3
56
|
import AsyncStorageDatabase from './AsyncStorageDatabase';
|
|
4
|
-
import { ModelPredicateCreator } from '../../predicates';
|
|
57
|
+
import { ModelPredicateCreator, ModelSortPredicateCreator, } from '../../predicates';
|
|
5
58
|
import { isPredicateObj, OpType, QueryOne, } from '../../types';
|
|
6
|
-
import { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, getIndex, getIndexFromAssociation, isModelConstructor, traverseModel, validatePredicate,
|
|
59
|
+
import { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR, exhaustiveCheck, getIndex, getIndexFromAssociation, isModelConstructor, traverseModel, validatePredicate, sortCompareFunction, keysEqual, getStorename, getIndexKeys, extractPrimaryKeyValues, IDENTIFIER_KEY_SEPARATOR, } from '../../util';
|
|
7
60
|
var logger = new Logger('DataStore');
|
|
8
61
|
var AsyncStorageAdapter = /** @class */ (function () {
|
|
9
62
|
function AsyncStorageAdapter() {
|
|
@@ -70,10 +123,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
70
123
|
AsyncStorageAdapter.prototype.save = function (model, condition) {
|
|
71
124
|
var e_1, _a;
|
|
72
125
|
return __awaiter(this, void 0, void 0, function () {
|
|
73
|
-
var modelConstructor, storeName, namespaceName, connectedModels, set, connectionStoreNames, keyValuesPath, fromDB, predicates,
|
|
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;
|
|
74
127
|
var _this = this;
|
|
75
|
-
return __generator(this, function (
|
|
76
|
-
switch (
|
|
128
|
+
return __generator(this, function (_b) {
|
|
129
|
+
switch (_b.label) {
|
|
77
130
|
case 0:
|
|
78
131
|
modelConstructor = Object.getPrototypeOf(model)
|
|
79
132
|
.constructor;
|
|
@@ -91,10 +144,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
91
144
|
keyValuesPath = this.getIndexKeyValuesPath(model);
|
|
92
145
|
return [4 /*yield*/, this.db.get(keyValuesPath, storeName)];
|
|
93
146
|
case 1:
|
|
94
|
-
fromDB =
|
|
147
|
+
fromDB = _b.sent();
|
|
95
148
|
if (condition && fromDB) {
|
|
96
149
|
predicates = ModelPredicateCreator.getPredicates(condition);
|
|
97
|
-
|
|
150
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
98
151
|
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
99
152
|
if (!isValid) {
|
|
100
153
|
msg = 'Conditional update failed';
|
|
@@ -103,43 +156,43 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
103
156
|
}
|
|
104
157
|
}
|
|
105
158
|
result = [];
|
|
106
|
-
|
|
159
|
+
_b.label = 2;
|
|
107
160
|
case 2:
|
|
108
|
-
|
|
161
|
+
_b.trys.push([2, 9, 10, 15]);
|
|
109
162
|
connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
110
|
-
|
|
163
|
+
_b.label = 3;
|
|
111
164
|
case 3: return [4 /*yield*/, connectionStoreNames_1.next()];
|
|
112
165
|
case 4:
|
|
113
|
-
if (!(connectionStoreNames_1_1 =
|
|
166
|
+
if (!(connectionStoreNames_1_1 = _b.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 8];
|
|
114
167
|
resItem = connectionStoreNames_1_1.value;
|
|
115
168
|
storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;
|
|
116
169
|
itemKeyValues = keys.map(function (key) { return item[key]; });
|
|
117
170
|
itemKeyValuesPath = itemKeyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR);
|
|
118
171
|
return [4 /*yield*/, this.db.get(itemKeyValuesPath, storeName_1)];
|
|
119
172
|
case 5:
|
|
120
|
-
fromDB_1 =
|
|
173
|
+
fromDB_1 = _b.sent();
|
|
121
174
|
opType = fromDB_1 ? OpType.UPDATE : OpType.INSERT;
|
|
122
175
|
modelKeyValues = this.getIndexKeyValuesFromModel(model);
|
|
123
176
|
if (!(keysEqual(itemKeyValues, modelKeyValues) ||
|
|
124
177
|
opType === OpType.INSERT)) return [3 /*break*/, 7];
|
|
125
178
|
return [4 /*yield*/, this.db.save(item, storeName_1, keys, itemKeyValuesPath)];
|
|
126
179
|
case 6:
|
|
127
|
-
|
|
180
|
+
_b.sent();
|
|
128
181
|
result.push([instance, opType]);
|
|
129
|
-
|
|
182
|
+
_b.label = 7;
|
|
130
183
|
case 7: return [3 /*break*/, 3];
|
|
131
184
|
case 8: return [3 /*break*/, 15];
|
|
132
185
|
case 9:
|
|
133
|
-
e_1_1 =
|
|
186
|
+
e_1_1 = _b.sent();
|
|
134
187
|
e_1 = { error: e_1_1 };
|
|
135
188
|
return [3 /*break*/, 15];
|
|
136
189
|
case 10:
|
|
137
|
-
|
|
190
|
+
_b.trys.push([10, , 13, 14]);
|
|
138
191
|
if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 12];
|
|
139
192
|
return [4 /*yield*/, _a.call(connectionStoreNames_1)];
|
|
140
193
|
case 11:
|
|
141
|
-
|
|
142
|
-
|
|
194
|
+
_b.sent();
|
|
195
|
+
_b.label = 12;
|
|
143
196
|
case 12: return [3 /*break*/, 14];
|
|
144
197
|
case 13:
|
|
145
198
|
if (e_1) throw e_1.error;
|
|
@@ -151,25 +204,196 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
151
204
|
});
|
|
152
205
|
};
|
|
153
206
|
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;
|
|
154
209
|
return __awaiter(this, void 0, void 0, function () {
|
|
155
|
-
var namespace, relations, connectionStoreNames, modelConstructor;
|
|
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;
|
|
156
211
|
var _this = this;
|
|
157
|
-
return __generator(this, function (
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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) {
|
|
167
394
|
return _this.modelInstanceCreator(modelConstructor, record);
|
|
168
395
|
})];
|
|
169
396
|
}
|
|
170
|
-
return [2 /*return*/, records.map(function (record) {
|
|
171
|
-
return _this.modelInstanceCreator(modelConstructor, record);
|
|
172
|
-
})];
|
|
173
397
|
});
|
|
174
398
|
});
|
|
175
399
|
};
|
|
@@ -214,7 +438,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
214
438
|
});
|
|
215
439
|
}); })()];
|
|
216
440
|
case 1:
|
|
217
|
-
records =
|
|
441
|
+
records = _a.sent();
|
|
218
442
|
return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];
|
|
219
443
|
case 2: return [2 /*return*/, _a.sent()];
|
|
220
444
|
}
|
|
@@ -245,7 +469,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
245
469
|
});
|
|
246
470
|
};
|
|
247
471
|
AsyncStorageAdapter.prototype.keyValueFromPredicate = function (predicates, keys) {
|
|
248
|
-
var
|
|
472
|
+
var e_5, _a;
|
|
249
473
|
var predicateObjs = predicates.predicates;
|
|
250
474
|
if (predicateObjs.length !== keys.length) {
|
|
251
475
|
return;
|
|
@@ -261,12 +485,12 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
261
485
|
_loop_1(key);
|
|
262
486
|
}
|
|
263
487
|
}
|
|
264
|
-
catch (
|
|
488
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
265
489
|
finally {
|
|
266
490
|
try {
|
|
267
491
|
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
268
492
|
}
|
|
269
|
-
finally { if (
|
|
493
|
+
finally { if (e_5) throw e_5.error; }
|
|
270
494
|
}
|
|
271
495
|
return keyValues.length === keys.length
|
|
272
496
|
? keyValues.join(DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR)
|
|
@@ -291,7 +515,20 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
291
515
|
});
|
|
292
516
|
};
|
|
293
517
|
AsyncStorageAdapter.prototype.inMemoryPagination = function (records, pagination) {
|
|
294
|
-
|
|
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;
|
|
295
532
|
};
|
|
296
533
|
AsyncStorageAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
297
534
|
if (firstOrLast === void 0) { firstOrLast = QueryOne.FIRST; }
|
|
@@ -311,9 +548,9 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
311
548
|
};
|
|
312
549
|
AsyncStorageAdapter.prototype.delete = function (modelOrModelConstructor, condition) {
|
|
313
550
|
return __awaiter(this, void 0, void 0, function () {
|
|
314
|
-
var deleteQueue, modelConstructor, nameSpace, models, relations, deletedModels, deletedModels, model, modelConstructor,
|
|
315
|
-
return __generator(this, function (
|
|
316
|
-
switch (
|
|
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) {
|
|
317
554
|
case 0:
|
|
318
555
|
deleteQueue = [];
|
|
319
556
|
if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 8];
|
|
@@ -321,16 +558,16 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
321
558
|
nameSpace = this.namespaceResolver(modelConstructor);
|
|
322
559
|
return [4 /*yield*/, this.query(modelConstructor, condition)];
|
|
323
560
|
case 1:
|
|
324
|
-
models =
|
|
561
|
+
models = _a.sent();
|
|
325
562
|
relations = this.schema.namespaces[nameSpace].relationships[modelConstructor.name]
|
|
326
563
|
.relationTypes;
|
|
327
564
|
if (!(condition !== undefined)) return [3 /*break*/, 4];
|
|
328
565
|
return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];
|
|
329
566
|
case 2:
|
|
330
|
-
|
|
567
|
+
_a.sent();
|
|
331
568
|
return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
332
569
|
case 3:
|
|
333
|
-
|
|
570
|
+
_a.sent();
|
|
334
571
|
deletedModels = deleteQueue.reduce(function (acc, _a) {
|
|
335
572
|
var items = _a.items;
|
|
336
573
|
return acc.concat(items);
|
|
@@ -338,10 +575,10 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
338
575
|
return [2 /*return*/, [models, deletedModels]];
|
|
339
576
|
case 4: return [4 /*yield*/, this.deleteTraverse(relations, models, modelConstructor.name, nameSpace, deleteQueue)];
|
|
340
577
|
case 5:
|
|
341
|
-
|
|
578
|
+
_a.sent();
|
|
342
579
|
return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
343
580
|
case 6:
|
|
344
|
-
|
|
581
|
+
_a.sent();
|
|
345
582
|
deletedModels = deleteQueue.reduce(function (acc, _a) {
|
|
346
583
|
var items = _a.items;
|
|
347
584
|
return acc.concat(items);
|
|
@@ -352,40 +589,40 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
352
589
|
model = modelOrModelConstructor;
|
|
353
590
|
modelConstructor = Object.getPrototypeOf(model)
|
|
354
591
|
.constructor;
|
|
355
|
-
|
|
592
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
356
593
|
storeName = this.getStorenameForModel(modelConstructor);
|
|
357
594
|
if (!condition) return [3 /*break*/, 11];
|
|
358
595
|
keyValuePath = this.getIndexKeyValuesPath(model);
|
|
359
596
|
return [4 /*yield*/, this.db.get(keyValuePath, storeName)];
|
|
360
597
|
case 9:
|
|
361
|
-
fromDB =
|
|
598
|
+
fromDB = _a.sent();
|
|
362
599
|
if (fromDB === undefined) {
|
|
363
600
|
msg = 'Model instance not found in storage';
|
|
364
601
|
logger.warn(msg, { model: model });
|
|
365
602
|
return [2 /*return*/, [[model], []]];
|
|
366
603
|
}
|
|
367
604
|
predicates = ModelPredicateCreator.getPredicates(condition);
|
|
368
|
-
|
|
605
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
369
606
|
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
370
607
|
if (!isValid) {
|
|
371
608
|
msg = 'Conditional update failed';
|
|
372
609
|
logger.error(msg, { model: fromDB, condition: predicateObjs });
|
|
373
610
|
throw new Error(msg);
|
|
374
611
|
}
|
|
375
|
-
relations = this.schema.namespaces[
|
|
376
|
-
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name,
|
|
612
|
+
relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
|
|
613
|
+
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
|
|
377
614
|
case 10:
|
|
378
|
-
|
|
615
|
+
_a.sent();
|
|
379
616
|
return [3 /*break*/, 13];
|
|
380
617
|
case 11:
|
|
381
|
-
relations = this.schema.namespaces[
|
|
382
|
-
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name,
|
|
618
|
+
relations = this.schema.namespaces[namespaceName].relationships[modelConstructor.name].relationTypes;
|
|
619
|
+
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name, namespaceName, deleteQueue)];
|
|
383
620
|
case 12:
|
|
384
|
-
|
|
385
|
-
|
|
621
|
+
_a.sent();
|
|
622
|
+
_a.label = 13;
|
|
386
623
|
case 13: return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
387
624
|
case 14:
|
|
388
|
-
|
|
625
|
+
_a.sent();
|
|
389
626
|
deletedModels = deleteQueue.reduce(function (acc, _a) {
|
|
390
627
|
var items = _a.items;
|
|
391
628
|
return acc.concat(items);
|
|
@@ -397,70 +634,71 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
397
634
|
});
|
|
398
635
|
};
|
|
399
636
|
AsyncStorageAdapter.prototype.deleteItem = function (deleteQueue) {
|
|
400
|
-
var
|
|
637
|
+
var deleteQueue_1, deleteQueue_1_1;
|
|
638
|
+
var e_6, _a, e_7, _b;
|
|
401
639
|
return __awaiter(this, void 0, void 0, function () {
|
|
402
|
-
var
|
|
403
|
-
return __generator(this, function (
|
|
404
|
-
switch (
|
|
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) {
|
|
405
643
|
case 0:
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
case 1: return [4 /*yield*/,
|
|
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()];
|
|
410
648
|
case 2:
|
|
411
|
-
if (!(
|
|
412
|
-
deleteItem =
|
|
649
|
+
if (!(deleteQueue_1_1 = _c.sent(), !deleteQueue_1_1.done)) return [3 /*break*/, 16];
|
|
650
|
+
deleteItem = deleteQueue_1_1.value;
|
|
413
651
|
storeName = deleteItem.storeName, items = deleteItem.items;
|
|
414
|
-
|
|
652
|
+
_c.label = 3;
|
|
415
653
|
case 3:
|
|
416
|
-
|
|
654
|
+
_c.trys.push([3, 9, 10, 15]);
|
|
417
655
|
items_1 = __asyncValues(items);
|
|
418
|
-
|
|
656
|
+
_c.label = 4;
|
|
419
657
|
case 4: return [4 /*yield*/, items_1.next()];
|
|
420
658
|
case 5:
|
|
421
|
-
if (!(items_1_1 =
|
|
659
|
+
if (!(items_1_1 = _c.sent(), !items_1_1.done)) return [3 /*break*/, 8];
|
|
422
660
|
item = items_1_1.value;
|
|
423
661
|
if (!item) return [3 /*break*/, 7];
|
|
424
662
|
if (!(typeof item === 'object')) return [3 /*break*/, 7];
|
|
425
663
|
keyValuesPath = this.getIndexKeyValuesPath(item);
|
|
426
664
|
return [4 /*yield*/, this.db.delete(keyValuesPath, storeName)];
|
|
427
665
|
case 6:
|
|
428
|
-
|
|
429
|
-
|
|
666
|
+
_c.sent();
|
|
667
|
+
_c.label = 7;
|
|
430
668
|
case 7: return [3 /*break*/, 4];
|
|
431
669
|
case 8: return [3 /*break*/, 15];
|
|
432
670
|
case 9:
|
|
433
|
-
|
|
434
|
-
|
|
671
|
+
e_7_1 = _c.sent();
|
|
672
|
+
e_7 = { error: e_7_1 };
|
|
435
673
|
return [3 /*break*/, 15];
|
|
436
674
|
case 10:
|
|
437
|
-
|
|
675
|
+
_c.trys.push([10, , 13, 14]);
|
|
438
676
|
if (!(items_1_1 && !items_1_1.done && (_b = items_1.return))) return [3 /*break*/, 12];
|
|
439
677
|
return [4 /*yield*/, _b.call(items_1)];
|
|
440
678
|
case 11:
|
|
441
|
-
|
|
442
|
-
|
|
679
|
+
_c.sent();
|
|
680
|
+
_c.label = 12;
|
|
443
681
|
case 12: return [3 /*break*/, 14];
|
|
444
682
|
case 13:
|
|
445
|
-
if (
|
|
683
|
+
if (e_7) throw e_7.error;
|
|
446
684
|
return [7 /*endfinally*/];
|
|
447
685
|
case 14: return [7 /*endfinally*/];
|
|
448
686
|
case 15: return [3 /*break*/, 1];
|
|
449
687
|
case 16: return [3 /*break*/, 23];
|
|
450
688
|
case 17:
|
|
451
|
-
|
|
452
|
-
|
|
689
|
+
e_6_1 = _c.sent();
|
|
690
|
+
e_6 = { error: e_6_1 };
|
|
453
691
|
return [3 /*break*/, 23];
|
|
454
692
|
case 18:
|
|
455
|
-
|
|
456
|
-
if (!(
|
|
457
|
-
return [4 /*yield*/, _a.call(
|
|
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)];
|
|
458
696
|
case 19:
|
|
459
|
-
|
|
460
|
-
|
|
697
|
+
_c.sent();
|
|
698
|
+
_c.label = 20;
|
|
461
699
|
case 20: return [3 /*break*/, 22];
|
|
462
700
|
case 21:
|
|
463
|
-
if (
|
|
701
|
+
if (e_6) throw e_6.error;
|
|
464
702
|
return [7 /*endfinally*/];
|
|
465
703
|
case 22: return [7 /*endfinally*/];
|
|
466
704
|
case 23: return [2 /*return*/];
|
|
@@ -477,21 +715,21 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
477
715
|
* @param deleteQueue
|
|
478
716
|
*/
|
|
479
717
|
AsyncStorageAdapter.prototype.deleteTraverse = function (relations, models, srcModel, nameSpace, deleteQueue) {
|
|
480
|
-
var
|
|
481
|
-
var
|
|
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;
|
|
482
720
|
return __awaiter(this, void 0, void 0, function () {
|
|
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,
|
|
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;
|
|
484
722
|
var _this = this;
|
|
485
723
|
return __generator(this, function (_e) {
|
|
486
724
|
switch (_e.label) {
|
|
487
725
|
case 0:
|
|
488
726
|
_e.trys.push([0, 38, 39, 44]);
|
|
489
|
-
|
|
727
|
+
relations_2 = __asyncValues(relations);
|
|
490
728
|
_e.label = 1;
|
|
491
|
-
case 1: return [4 /*yield*/,
|
|
729
|
+
case 1: return [4 /*yield*/, relations_2.next()];
|
|
492
730
|
case 2:
|
|
493
|
-
if (!(
|
|
494
|
-
rel =
|
|
731
|
+
if (!(relations_2_1 = _e.sent(), !relations_2_1.done)) return [3 /*break*/, 37];
|
|
732
|
+
rel = relations_2_1.value;
|
|
495
733
|
relationType = rel.relationType, modelName = rel.modelName, targetName = rel.targetName, targetNames = rel.targetNames, associatedWith = rel.associatedWith;
|
|
496
734
|
storeName = getStorename(nameSpace, modelName);
|
|
497
735
|
index = getIndex(this.schema.namespaces[nameSpace].relationships[modelName]
|
|
@@ -592,8 +830,8 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
592
830
|
case 11: return [3 /*break*/, 4];
|
|
593
831
|
case 12: return [3 /*break*/, 19];
|
|
594
832
|
case 13:
|
|
595
|
-
|
|
596
|
-
|
|
833
|
+
e_9_1 = _e.sent();
|
|
834
|
+
e_9 = { error: e_9_1 };
|
|
597
835
|
return [3 /*break*/, 19];
|
|
598
836
|
case 14:
|
|
599
837
|
_e.trys.push([14, , 17, 18]);
|
|
@@ -604,7 +842,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
604
842
|
_e.label = 16;
|
|
605
843
|
case 16: return [3 /*break*/, 18];
|
|
606
844
|
case 17:
|
|
607
|
-
if (
|
|
845
|
+
if (e_9) throw e_9.error;
|
|
608
846
|
return [7 /*endfinally*/];
|
|
609
847
|
case 18: return [7 /*endfinally*/];
|
|
610
848
|
case 19: return [3 /*break*/, 36];
|
|
@@ -632,8 +870,8 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
632
870
|
case 25: return [3 /*break*/, 21];
|
|
633
871
|
case 26: return [3 /*break*/, 33];
|
|
634
872
|
case 27:
|
|
635
|
-
|
|
636
|
-
|
|
873
|
+
e_10_1 = _e.sent();
|
|
874
|
+
e_10 = { error: e_10_1 };
|
|
637
875
|
return [3 /*break*/, 33];
|
|
638
876
|
case 28:
|
|
639
877
|
_e.trys.push([28, , 31, 32]);
|
|
@@ -644,30 +882,32 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
644
882
|
_e.label = 30;
|
|
645
883
|
case 30: return [3 /*break*/, 32];
|
|
646
884
|
case 31:
|
|
647
|
-
if (
|
|
885
|
+
if (e_10) throw e_10.error;
|
|
648
886
|
return [7 /*endfinally*/];
|
|
649
887
|
case 32: return [7 /*endfinally*/];
|
|
650
888
|
case 33: return [3 /*break*/, 36];
|
|
651
889
|
case 34:
|
|
652
890
|
// Intentionally blank
|
|
653
891
|
return [3 /*break*/, 36];
|
|
654
|
-
case 35:
|
|
892
|
+
case 35:
|
|
893
|
+
exhaustiveCheck(relationType);
|
|
894
|
+
return [3 /*break*/, 36];
|
|
655
895
|
case 36: return [3 /*break*/, 1];
|
|
656
896
|
case 37: return [3 /*break*/, 44];
|
|
657
897
|
case 38:
|
|
658
|
-
|
|
659
|
-
|
|
898
|
+
e_8_1 = _e.sent();
|
|
899
|
+
e_8 = { error: e_8_1 };
|
|
660
900
|
return [3 /*break*/, 44];
|
|
661
901
|
case 39:
|
|
662
902
|
_e.trys.push([39, , 42, 43]);
|
|
663
|
-
if (!(
|
|
664
|
-
return [4 /*yield*/, _a.call(
|
|
903
|
+
if (!(relations_2_1 && !relations_2_1.done && (_a = relations_2.return))) return [3 /*break*/, 41];
|
|
904
|
+
return [4 /*yield*/, _a.call(relations_2)];
|
|
665
905
|
case 40:
|
|
666
906
|
_e.sent();
|
|
667
907
|
_e.label = 41;
|
|
668
908
|
case 41: return [3 /*break*/, 43];
|
|
669
909
|
case 42:
|
|
670
|
-
if (
|
|
910
|
+
if (e_8) throw e_8.error;
|
|
671
911
|
return [7 /*endfinally*/];
|
|
672
912
|
case 43: return [7 /*endfinally*/];
|
|
673
913
|
case 44:
|
|
@@ -699,7 +939,7 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
699
939
|
AsyncStorageAdapter.prototype.batchSave = function (modelConstructor, items) {
|
|
700
940
|
return __awaiter(this, void 0, void 0, function () {
|
|
701
941
|
var modelName, namespaceName, storeName, keys, batch, _loop_2, this_1, items_2, items_2_1, item;
|
|
702
|
-
var
|
|
942
|
+
var e_11, _a;
|
|
703
943
|
var _this = this;
|
|
704
944
|
return __generator(this, function (_b) {
|
|
705
945
|
switch (_b.label) {
|
|
@@ -727,12 +967,12 @@ var AsyncStorageAdapter = /** @class */ (function () {
|
|
|
727
967
|
_loop_2(item);
|
|
728
968
|
}
|
|
729
969
|
}
|
|
730
|
-
catch (
|
|
970
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
731
971
|
finally {
|
|
732
972
|
try {
|
|
733
973
|
if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);
|
|
734
974
|
}
|
|
735
|
-
finally { if (
|
|
975
|
+
finally { if (e_11) throw e_11.error; }
|
|
736
976
|
}
|
|
737
977
|
return [4 /*yield*/, this.db.batchSave(storeName, batch, keys)];
|
|
738
978
|
case 1: return [2 /*return*/, _b.sent()];
|