@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.
- package/CHANGELOG.md +0 -8
- package/lib/authModeStrategies/defaultAuthStrategy.d.ts +2 -0
- package/lib/authModeStrategies/index.d.ts +2 -0
- package/lib/authModeStrategies/multiAuthStrategy.d.ts +13 -0
- package/lib/authModeStrategies/multiAuthStrategy.js +6 -64
- package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib/datastore/datastore.d.ts +207 -0
- package/lib/datastore/datastore.js +703 -297
- package/lib/datastore/datastore.js.map +1 -1
- package/lib/index.d.ts +16 -0
- package/lib/index.js +6 -4
- package/lib/index.js.map +1 -1
- package/lib/predicates/index.d.ts +30 -0
- package/lib/predicates/index.js +127 -6
- package/lib/predicates/index.js.map +1 -1
- package/lib/predicates/next.d.ts +301 -0
- package/lib/predicates/next.js +816 -0
- package/lib/predicates/next.js.map +1 -0
- package/lib/predicates/sort.d.ts +8 -0
- package/lib/predicates/sort.js +10 -4
- package/lib/predicates/sort.js.map +1 -1
- package/lib/ssr/index.d.ts +3 -0
- package/lib/storage/adapter/AsyncStorageAdapter.d.ts +42 -0
- package/lib/storage/adapter/AsyncStorageAdapter.js +141 -382
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageDatabase.d.ts +39 -0
- package/lib/storage/adapter/AsyncStorageDatabase.js +37 -98
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.d.ts +11 -0
- package/lib/storage/adapter/InMemoryStore.js +16 -67
- package/lib/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.native.d.ts +1 -0
- package/lib/storage/adapter/InMemoryStore.native.js +2 -4
- package/lib/storage/adapter/InMemoryStore.native.js.map +1 -1
- package/lib/storage/adapter/IndexedDBAdapter.d.ts +61 -0
- package/lib/storage/adapter/IndexedDBAdapter.js +275 -419
- package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.d.ts +3 -0
- package/lib/storage/adapter/getDefaultAdapter/index.js +3 -5
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +3 -0
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +2 -4
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/lib/storage/adapter/index.d.ts +9 -0
- package/lib/storage/relationship.d.ts +140 -0
- package/lib/storage/relationship.js +335 -0
- package/lib/storage/relationship.js.map +1 -0
- package/lib/storage/storage.d.ts +50 -0
- package/lib/storage/storage.js +72 -143
- package/lib/storage/storage.js.map +1 -1
- package/lib/sync/datastoreConnectivity.d.ts +16 -0
- package/lib/sync/datastoreConnectivity.js +6 -55
- package/lib/sync/datastoreConnectivity.js.map +1 -1
- package/lib/sync/datastoreReachability/index.d.ts +3 -0
- package/lib/sync/datastoreReachability/index.native.d.ts +3 -0
- package/lib/sync/datastoreReachability/index.native.js +2 -4
- package/lib/sync/datastoreReachability/index.native.js.map +1 -1
- package/lib/sync/index.d.ts +89 -0
- package/lib/sync/index.js +49 -124
- package/lib/sync/index.js.map +1 -1
- package/lib/sync/merger.d.ts +17 -0
- package/lib/sync/merger.js +8 -74
- package/lib/sync/merger.js.map +1 -1
- package/lib/sync/outbox.d.ts +27 -0
- package/lib/sync/outbox.js +24 -97
- package/lib/sync/outbox.js.map +1 -1
- package/lib/sync/processors/errorMaps.d.ts +17 -0
- package/lib/sync/processors/errorMaps.js +5 -35
- package/lib/sync/processors/errorMaps.js.map +1 -1
- package/lib/sync/processors/mutation.d.ts +58 -0
- package/lib/sync/processors/mutation.js +47 -131
- package/lib/sync/processors/mutation.js.map +1 -1
- package/lib/sync/processors/subscription.d.ts +33 -0
- package/lib/sync/processors/subscription.js +29 -102
- package/lib/sync/processors/subscription.js.map +1 -1
- package/lib/sync/processors/sync.d.ts +28 -0
- package/lib/sync/processors/sync.js +26 -102
- package/lib/sync/processors/sync.js.map +1 -1
- package/lib/sync/utils.d.ts +42 -0
- package/lib/sync/utils.js +40 -103
- package/lib/sync/utils.js.map +1 -1
- package/lib/types.d.ts +554 -0
- package/lib/types.js +9 -39
- package/lib/types.js.map +1 -1
- package/lib/util.d.ts +189 -0
- package/lib/util.js +192 -188
- package/lib/util.js.map +1 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +2 -57
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib-esm/datastore/datastore.d.ts +59 -8
- package/lib-esm/datastore/datastore.js +642 -234
- package/lib-esm/datastore/datastore.js.map +1 -1
- package/lib-esm/index.d.ts +3 -2
- package/lib-esm/index.js +2 -1
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/predicates/index.d.ts +16 -2
- package/lib-esm/predicates/index.js +128 -7
- package/lib-esm/predicates/index.js.map +1 -1
- package/lib-esm/predicates/next.d.ts +301 -0
- package/lib-esm/predicates/next.js +812 -0
- package/lib-esm/predicates/next.js.map +1 -0
- package/lib-esm/predicates/sort.js +10 -4
- package/lib-esm/predicates/sort.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +2 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +112 -350
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +7 -68
- 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 +1 -52
- package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +4 -2
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +230 -367
- 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/relationship.d.ts +140 -0
- package/lib-esm/storage/relationship.js +333 -0
- package/lib-esm/storage/relationship.js.map +1 -0
- package/lib-esm/storage/storage.d.ts +7 -6
- package/lib-esm/storage/storage.js +33 -101
- package/lib-esm/storage/storage.js.map +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +1 -47
- package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
- package/lib-esm/sync/index.js +4 -76
- package/lib-esm/sync/index.js.map +1 -1
- package/lib-esm/sync/merger.js +1 -67
- package/lib-esm/sync/merger.js.map +1 -1
- package/lib-esm/sync/outbox.js +1 -74
- package/lib-esm/sync/outbox.js.map +1 -1
- package/lib-esm/sync/processors/errorMaps.js +2 -32
- package/lib-esm/sync/processors/errorMaps.js.map +1 -1
- package/lib-esm/sync/processors/mutation.js +12 -93
- package/lib-esm/sync/processors/mutation.js.map +1 -1
- package/lib-esm/sync/processors/subscription.js +6 -69
- package/lib-esm/sync/processors/subscription.js.map +1 -1
- package/lib-esm/sync/processors/sync.js +2 -75
- 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 +32 -95
- package/lib-esm/sync/utils.js.map +1 -1
- package/lib-esm/types.d.ts +63 -10
- package/lib-esm/types.js +7 -38
- package/lib-esm/types.js.map +1 -1
- package/lib-esm/util.d.ts +39 -6
- package/lib-esm/util.js +171 -171
- package/lib-esm/util.js.map +1 -1
- package/package.json +21 -14
- package/src/authModeStrategies/multiAuthStrategy.ts +2 -2
- package/src/datastore/datastore.ts +699 -206
- package/src/index.ts +4 -0
- package/src/predicates/index.ts +143 -17
- package/src/predicates/next.ts +967 -0
- package/src/predicates/sort.ts +8 -2
- package/src/storage/adapter/AsyncStorageAdapter.ts +59 -181
- package/src/storage/adapter/AsyncStorageDatabase.ts +16 -15
- package/src/storage/adapter/InMemoryStore.ts +5 -2
- package/src/storage/adapter/IndexedDBAdapter.ts +169 -192
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -2
- package/src/storage/relationship.ts +272 -0
- package/src/storage/storage.ts +56 -37
- package/src/sync/datastoreConnectivity.ts +4 -4
- package/src/sync/index.ts +22 -28
- 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 +23 -19
- package/src/sync/processors/subscription.ts +20 -16
- package/src/sync/processors/sync.ts +17 -17
- package/src/sync/utils.ts +42 -48
- package/src/types.ts +128 -16
- package/src/util.ts +108 -150
- package/build.js +0 -5
- package/dist/aws-amplify-datastore.js +0 -92787
- package/dist/aws-amplify-datastore.js.map +0 -1
- package/dist/aws-amplify-datastore.min.js +0 -66
- package/dist/aws-amplify-datastore.min.js.map +0 -1
- package/index.js +0 -7
- package/webpack.config.dev.js +0 -6
|
@@ -1,62 +1,9 @@
|
|
|
1
|
-
|
|
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
|
|
4
|
+
import { ModelPredicateCreator } from '../../predicates';
|
|
58
5
|
import { isPredicateObj, OpType, QueryOne, } from '../../types';
|
|
59
|
-
import { DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR,
|
|
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 (
|
|
129
|
-
switch (
|
|
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 =
|
|
94
|
+
fromDB = _c.sent();
|
|
148
95
|
if (condition && fromDB) {
|
|
149
96
|
predicates = ModelPredicateCreator.getPredicates(condition);
|
|
150
|
-
predicateObjs =
|
|
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
|
-
|
|
106
|
+
_c.label = 2;
|
|
160
107
|
case 2:
|
|
161
|
-
|
|
108
|
+
_c.trys.push([2, 9, 10, 15]);
|
|
162
109
|
connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
163
|
-
|
|
110
|
+
_c.label = 3;
|
|
164
111
|
case 3: return [4 /*yield*/, connectionStoreNames_1.next()];
|
|
165
112
|
case 4:
|
|
166
|
-
if (!(connectionStoreNames_1_1 =
|
|
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 =
|
|
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
|
-
|
|
127
|
+
_c.sent();
|
|
181
128
|
result.push([instance, opType]);
|
|
182
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
195
|
-
|
|
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
|
|
155
|
+
var namespace, relations, connectionStoreNames, modelConstructor;
|
|
211
156
|
var _this = this;
|
|
212
|
-
return __generator(this, function (
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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,
|
|
552
|
-
return __generator(this, function (
|
|
553
|
-
switch (
|
|
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 =
|
|
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
|
-
|
|
330
|
+
_b.sent();
|
|
568
331
|
return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
569
332
|
case 3:
|
|
570
|
-
|
|
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
|
-
|
|
341
|
+
_b.sent();
|
|
579
342
|
return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
580
343
|
case 6:
|
|
581
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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[
|
|
613
|
-
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name,
|
|
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
|
-
|
|
378
|
+
_b.sent();
|
|
616
379
|
return [3 /*break*/, 13];
|
|
617
380
|
case 11:
|
|
618
|
-
relations = this.schema.namespaces[
|
|
619
|
-
return [4 /*yield*/, this.deleteTraverse(relations, [model], modelConstructor.name,
|
|
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
|
-
|
|
622
|
-
|
|
384
|
+
_b.sent();
|
|
385
|
+
_b.label = 13;
|
|
623
386
|
case 13: return [4 /*yield*/, this.deleteItem(deleteQueue)];
|
|
624
387
|
case 14:
|
|
625
|
-
|
|
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
|
|
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,
|
|
641
|
-
return __generator(this, function (
|
|
642
|
-
switch (
|
|
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
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
case 1: return [4 /*yield*/,
|
|
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 (!(
|
|
650
|
-
deleteItem =
|
|
411
|
+
if (!(_d = _e.sent(), !_d.done)) return [3 /*break*/, 16];
|
|
412
|
+
deleteItem = _d.value;
|
|
651
413
|
storeName = deleteItem.storeName, items = deleteItem.items;
|
|
652
|
-
|
|
414
|
+
_e.label = 3;
|
|
653
415
|
case 3:
|
|
654
|
-
|
|
416
|
+
_e.trys.push([3, 9, 10, 15]);
|
|
655
417
|
items_1 = __asyncValues(items);
|
|
656
|
-
|
|
418
|
+
_e.label = 4;
|
|
657
419
|
case 4: return [4 /*yield*/, items_1.next()];
|
|
658
420
|
case 5:
|
|
659
|
-
if (!(items_1_1 =
|
|
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
|
-
|
|
667
|
-
|
|
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
|
-
|
|
672
|
-
|
|
433
|
+
e_4_1 = _e.sent();
|
|
434
|
+
e_4 = { error: e_4_1 };
|
|
673
435
|
return [3 /*break*/, 15];
|
|
674
436
|
case 10:
|
|
675
|
-
|
|
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
|
-
|
|
680
|
-
|
|
441
|
+
_e.sent();
|
|
442
|
+
_e.label = 12;
|
|
681
443
|
case 12: return [3 /*break*/, 14];
|
|
682
444
|
case 13:
|
|
683
|
-
if (
|
|
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
|
-
|
|
690
|
-
|
|
451
|
+
e_3_1 = _e.sent();
|
|
452
|
+
e_3 = { error: e_3_1 };
|
|
691
453
|
return [3 /*break*/, 23];
|
|
692
454
|
case 18:
|
|
693
|
-
|
|
694
|
-
if (!(
|
|
695
|
-
return [4 /*yield*/, _a.call(
|
|
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
|
-
|
|
698
|
-
|
|
459
|
+
_e.sent();
|
|
460
|
+
_e.label = 20;
|
|
699
461
|
case 20: return [3 /*break*/, 22];
|
|
700
462
|
case 21:
|
|
701
|
-
if (
|
|
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
|
|
719
|
-
var
|
|
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,
|
|
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
|
-
|
|
489
|
+
relations_1 = __asyncValues(relations);
|
|
728
490
|
_e.label = 1;
|
|
729
|
-
case 1: return [4 /*yield*/,
|
|
491
|
+
case 1: return [4 /*yield*/, relations_1.next()];
|
|
730
492
|
case 2:
|
|
731
|
-
if (!(
|
|
732
|
-
rel =
|
|
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
|
|
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
|
-
|
|
832
|
-
|
|
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 (
|
|
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
|
-
|
|
872
|
-
|
|
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 (
|
|
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
|
-
|
|
897
|
-
|
|
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 (!(
|
|
902
|
-
return [4 /*yield*/, _a.call(
|
|
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 (
|
|
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
|
|
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 (
|
|
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 (
|
|
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()];
|