@aws-amplify/datastore 4.7.5 → 5.0.1-console-preview.4432977.0
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/README.md +4 -0
- package/lib/authModeStrategies/defaultAuthStrategy.js +3 -2
- package/lib/authModeStrategies/index.js +3 -3
- package/lib/authModeStrategies/multiAuthStrategy.js +81 -24
- package/lib/datastore/datastore.d.ts +3 -4
- package/lib/datastore/datastore.js +361 -227
- package/lib/index.d.ts +1 -1
- package/lib/index.js +25 -12
- package/lib/predicates/index.js +46 -12
- package/lib/predicates/next.d.ts +2 -2
- package/lib/predicates/next.js +172 -74
- package/lib/predicates/sort.js +3 -4
- package/lib/ssr/index.js +1 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js +240 -128
- package/lib/storage/adapter/AsyncStorageDatabase.js +100 -39
- package/lib/storage/adapter/InMemoryStore.js +68 -17
- package/lib/storage/adapter/InMemoryStore.native.js +5 -3
- package/lib/storage/adapter/IndexedDBAdapter.js +355 -199
- package/lib/storage/adapter/StorageAdapterBase.js +154 -85
- package/lib/storage/adapter/getDefaultAdapter/index.js +8 -9
- package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -3
- package/lib/storage/adapter/index.js +0 -1
- package/lib/storage/relationship.js +31 -21
- package/lib/storage/storage.d.ts +3 -3
- package/lib/storage/storage.js +143 -61
- package/lib/sync/datastoreConnectivity.d.ts +1 -1
- package/lib/sync/datastoreConnectivity.js +57 -9
- package/lib/sync/datastoreReachability/index.js +3 -3
- package/lib/sync/datastoreReachability/index.native.js +7 -5
- package/lib/sync/index.d.ts +1 -1
- package/lib/sync/index.js +193 -125
- package/lib/sync/merger.js +81 -10
- package/lib/sync/outbox.js +101 -30
- package/lib/sync/processors/errorMaps.d.ts +1 -1
- package/lib/sync/processors/errorMaps.js +41 -6
- package/lib/sync/processors/mutation.d.ts +1 -1
- package/lib/sync/processors/mutation.js +192 -101
- package/lib/sync/processors/subscription.d.ts +4 -1
- package/lib/sync/processors/subscription.js +190 -178
- package/lib/sync/processors/sync.d.ts +1 -1
- package/lib/sync/processors/sync.js +113 -47
- package/lib/sync/utils.d.ts +4 -4
- package/lib/sync/utils.js +162 -81
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +138 -140
- package/lib/types.js +40 -5
- package/lib/util.d.ts +9 -17
- package/lib/util.js +216 -100
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js +0 -1
- package/lib-esm/authModeStrategies/index.js +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +76 -21
- package/lib-esm/datastore/datastore.d.ts +3 -4
- package/lib-esm/datastore/datastore.js +206 -77
- package/lib-esm/index.d.ts +1 -1
- package/lib-esm/index.js +0 -1
- package/lib-esm/predicates/index.js +40 -7
- package/lib-esm/predicates/next.d.ts +2 -2
- package/lib-esm/predicates/next.js +148 -52
- package/lib-esm/predicates/sort.js +2 -4
- package/lib-esm/ssr/index.js +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +203 -95
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -5
- package/lib-esm/storage/adapter/InMemoryStore.js +52 -2
- package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +271 -138
- package/lib-esm/storage/adapter/StorageAdapterBase.js +130 -62
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -5
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -1
- package/lib-esm/storage/adapter/index.js +1 -1
- package/lib-esm/storage/relationship.js +27 -18
- package/lib-esm/storage/storage.d.ts +3 -3
- package/lib-esm/storage/storage.js +87 -9
- package/lib-esm/sync/datastoreConnectivity.d.ts +1 -1
- package/lib-esm/sync/datastoreConnectivity.js +48 -3
- package/lib-esm/sync/datastoreReachability/index.js +1 -2
- package/lib-esm/sync/datastoreReachability/index.native.js +1 -2
- package/lib-esm/sync/index.d.ts +1 -1
- package/lib-esm/sync/index.js +136 -72
- package/lib-esm/sync/merger.js +73 -3
- package/lib-esm/sync/outbox.js +75 -5
- package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
- package/lib-esm/sync/processors/errorMaps.js +39 -5
- package/lib-esm/sync/processors/mutation.d.ts +1 -1
- package/lib-esm/sync/processors/mutation.js +130 -44
- package/lib-esm/sync/processors/subscription.d.ts +4 -1
- package/lib-esm/sync/processors/subscription.js +134 -126
- package/lib-esm/sync/processors/sync.d.ts +1 -1
- package/lib-esm/sync/processors/sync.js +74 -12
- package/lib-esm/sync/utils.d.ts +4 -4
- package/lib-esm/sync/utils.js +135 -55
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types.d.ts +138 -140
- package/lib-esm/types.js +36 -2
- package/lib-esm/util.d.ts +9 -17
- package/lib-esm/util.js +96 -16
- package/package.json +139 -132
- package/src/authModeStrategies/multiAuthStrategy.ts +11 -12
- package/src/datastore/datastore.ts +32 -25
- package/src/predicates/sort.ts +3 -1
- package/src/storage/adapter/InMemoryStore.ts +1 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +1 -1
- package/src/storage/adapter/StorageAdapterBase.ts +1 -1
- package/src/storage/adapter/getDefaultAdapter/index.ts +2 -3
- package/src/storage/storage.ts +1 -1
- package/src/sync/datastoreConnectivity.ts +2 -2
- package/src/sync/datastoreReachability/index.native.ts +1 -1
- package/src/sync/datastoreReachability/index.ts +1 -1
- package/src/sync/index.ts +69 -78
- package/src/sync/processors/mutation.ts +16 -10
- package/src/sync/processors/subscription.ts +55 -127
- package/src/sync/processors/sync.ts +8 -4
- package/src/sync/utils.ts +7 -8
- package/src/types.ts +4 -8
- package/src/util.ts +5 -6
- package/lib/.tsbuildinfo +0 -3
- package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib/authModeStrategies/index.js.map +0 -1
- package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib/datastore/datastore.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/predicates/index.js.map +0 -1
- package/lib/predicates/next.js.map +0 -1
- package/lib/predicates/sort.js.map +0 -1
- package/lib/ssr/index.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib/storage/adapter/index.js.map +0 -1
- package/lib/storage/relationship.js.map +0 -1
- package/lib/storage/storage.js.map +0 -1
- package/lib/sync/datastoreConnectivity.js.map +0 -1
- package/lib/sync/datastoreReachability/index.js.map +0 -1
- package/lib/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib/sync/index.js.map +0 -1
- package/lib/sync/merger.js.map +0 -1
- package/lib/sync/outbox.js.map +0 -1
- package/lib/sync/processors/errorMaps.js.map +0 -1
- package/lib/sync/processors/mutation.js.map +0 -1
- package/lib/sync/processors/subscription.js.map +0 -1
- package/lib/sync/processors/sync.js.map +0 -1
- package/lib/sync/utils.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/util.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
- package/lib-esm/authModeStrategies/index.js.map +0 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
- package/lib-esm/datastore/datastore.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/predicates/index.js.map +0 -1
- package/lib-esm/predicates/next.js.map +0 -1
- package/lib-esm/predicates/sort.js.map +0 -1
- package/lib-esm/ssr/index.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
- package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
- package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
- package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
- package/lib-esm/storage/adapter/index.js.map +0 -1
- package/lib-esm/storage/relationship.js.map +0 -1
- package/lib-esm/storage/storage.js.map +0 -1
- package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
- package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
- package/lib-esm/sync/index.js.map +0 -1
- package/lib-esm/sync/merger.js.map +0 -1
- package/lib-esm/sync/outbox.js.map +0 -1
- package/lib-esm/sync/processors/errorMaps.js.map +0 -1
- package/lib-esm/sync/processors/mutation.js.map +0 -1
- package/lib-esm/sync/processors/subscription.js.map +0 -1
- package/lib-esm/sync/processors/sync.js.map +0 -1
- package/lib-esm/sync/utils.js.map +0 -1
- package/lib-esm/types.js.map +0 -1
- package/lib-esm/util.js.map +0 -1
|
@@ -1,14 +1,130 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
50
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
51
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
52
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
53
|
+
function step(op) {
|
|
54
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
55
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
56
|
+
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;
|
|
57
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
58
|
+
switch (op[0]) {
|
|
59
|
+
case 0: case 1: t = op; break;
|
|
60
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
61
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
62
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
63
|
+
default:
|
|
64
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
65
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
66
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
67
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
68
|
+
if (t[2]) _.ops.pop();
|
|
69
|
+
_.trys.pop(); continue;
|
|
70
|
+
}
|
|
71
|
+
op = body.call(thisArg, _);
|
|
72
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
73
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
77
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
78
|
+
var m = o[Symbol.asyncIterator], i;
|
|
79
|
+
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);
|
|
80
|
+
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); }); }; }
|
|
81
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
82
|
+
};
|
|
83
|
+
var __values = (this && this.__values) || function(o) {
|
|
84
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
85
|
+
if (m) return m.call(o);
|
|
86
|
+
if (o && typeof o.length === "number") return {
|
|
87
|
+
next: function () {
|
|
88
|
+
if (o && i >= o.length) o = void 0;
|
|
89
|
+
return { value: o && o[i++], done: !o };
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
93
|
+
};
|
|
94
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
95
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
96
|
+
if (!m) return o;
|
|
97
|
+
var i = m.call(o), r, ar = [], e;
|
|
98
|
+
try {
|
|
99
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
100
|
+
}
|
|
101
|
+
catch (error) { e = { error: error }; }
|
|
102
|
+
finally {
|
|
103
|
+
try {
|
|
104
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
105
|
+
}
|
|
106
|
+
finally { if (e) throw e.error; }
|
|
107
|
+
}
|
|
108
|
+
return ar;
|
|
109
|
+
};
|
|
110
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
111
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
112
|
+
if (ar || !(i in from)) {
|
|
113
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
114
|
+
ar[i] = from[i];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
118
|
+
};
|
|
2
119
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
120
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
121
|
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
var
|
|
7
|
-
var idb = tslib_1.__importStar(require("idb"));
|
|
122
|
+
var idb = __importStar(require("idb"));
|
|
8
123
|
var types_1 = require("../../types");
|
|
9
124
|
var util_1 = require("../../util");
|
|
10
125
|
var StorageAdapterBase_1 = require("./StorageAdapterBase");
|
|
11
|
-
var
|
|
126
|
+
var utils_1 = require("@aws-amplify/core/internals/utils");
|
|
127
|
+
var logger = new utils_1.Logger('DataStore');
|
|
12
128
|
/**
|
|
13
129
|
* The point after which queries composed of multiple simple OR conditions
|
|
14
130
|
* should scan-and-filter instead of individual queries for each condition.
|
|
@@ -34,7 +150,7 @@ var MULTI_OR_CONDITION_SCAN_BREAKPOINT = 7;
|
|
|
34
150
|
//
|
|
35
151
|
var DB_VERSION = 3;
|
|
36
152
|
var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
37
|
-
|
|
153
|
+
__extends(IndexedDBAdapter, _super);
|
|
38
154
|
function IndexedDBAdapter() {
|
|
39
155
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
40
156
|
_this.safariCompatabilityMode = false;
|
|
@@ -57,8 +173,8 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
57
173
|
}
|
|
58
174
|
// checks are called by StorageAdapterBase class
|
|
59
175
|
IndexedDBAdapter.prototype.preSetUpChecks = function () {
|
|
60
|
-
return
|
|
61
|
-
return
|
|
176
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
177
|
+
return __generator(this, function (_a) {
|
|
62
178
|
switch (_a.label) {
|
|
63
179
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
64
180
|
case 1:
|
|
@@ -72,8 +188,8 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
72
188
|
});
|
|
73
189
|
};
|
|
74
190
|
IndexedDBAdapter.prototype.preOpCheck = function () {
|
|
75
|
-
return
|
|
76
|
-
return
|
|
191
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
192
|
+
return __generator(this, function (_a) {
|
|
77
193
|
switch (_a.label) {
|
|
78
194
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
79
195
|
case 1:
|
|
@@ -93,16 +209,16 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
93
209
|
* @returns IDB Database instance
|
|
94
210
|
*/
|
|
95
211
|
IndexedDBAdapter.prototype.initDb = function () {
|
|
96
|
-
return
|
|
212
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
213
|
var _this = this;
|
|
98
|
-
return
|
|
214
|
+
return __generator(this, function (_a) {
|
|
99
215
|
switch (_a.label) {
|
|
100
216
|
case 0: return [4 /*yield*/, idb.openDB(this.dbName, DB_VERSION, {
|
|
101
|
-
upgrade: function (db, oldVersion, newVersion, txn) { return
|
|
217
|
+
upgrade: function (db, oldVersion, newVersion, txn) { return __awaiter(_this, void 0, void 0, function () {
|
|
102
218
|
var _a, _b, storeName, origStore, tmpName, _c, namespaceName, modelName, modelInCurrentSchema, newStore, cursor, count, e_1_1, error_1;
|
|
103
219
|
var e_1, _d;
|
|
104
220
|
var _this = this;
|
|
105
|
-
return
|
|
221
|
+
return __generator(this, function (_e) {
|
|
106
222
|
switch (_e.label) {
|
|
107
223
|
case 0:
|
|
108
224
|
// create new database
|
|
@@ -110,7 +226,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
110
226
|
Object.keys(this.schema.namespaces).forEach(function (namespaceName) {
|
|
111
227
|
var namespace = _this.schema.namespaces[namespaceName];
|
|
112
228
|
Object.keys(namespace.models).forEach(function (modelName) {
|
|
113
|
-
var storeName = util_1.getStorename(namespaceName, modelName);
|
|
229
|
+
var storeName = (0, util_1.getStorename)(namespaceName, modelName);
|
|
114
230
|
_this.createObjectStoreForModel(db, namespaceName, storeName, modelName);
|
|
115
231
|
});
|
|
116
232
|
});
|
|
@@ -123,13 +239,13 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
123
239
|
_e.label = 2;
|
|
124
240
|
case 2:
|
|
125
241
|
_e.trys.push([2, 11, 12, 13]);
|
|
126
|
-
_a =
|
|
242
|
+
_a = __values(txn.objectStoreNames), _b = _a.next();
|
|
127
243
|
_e.label = 3;
|
|
128
244
|
case 3:
|
|
129
245
|
if (!!_b.done) return [3 /*break*/, 10];
|
|
130
246
|
storeName = _b.value;
|
|
131
247
|
origStore = txn.objectStore(storeName);
|
|
132
|
-
tmpName = "tmp_"
|
|
248
|
+
tmpName = "tmp_".concat(storeName);
|
|
133
249
|
origStore.name = tmpName;
|
|
134
250
|
_c = this.getNamespaceAndModelFromStorename(storeName), namespaceName = _c.namespaceName, modelName = _c.modelName;
|
|
135
251
|
modelInCurrentSchema = modelName in this.schema.namespaces[namespaceName].models;
|
|
@@ -159,7 +275,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
159
275
|
case 8:
|
|
160
276
|
// delete original
|
|
161
277
|
db.deleteObjectStore(tmpName);
|
|
162
|
-
logger.debug(count
|
|
278
|
+
logger.debug("".concat(count, " ").concat(storeName, " records migrated"));
|
|
163
279
|
_e.label = 9;
|
|
164
280
|
case 9:
|
|
165
281
|
_b = _a.next();
|
|
@@ -184,14 +300,14 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
184
300
|
var objectStoreNames = new Set(txn.objectStoreNames);
|
|
185
301
|
Object.keys(namespace.models)
|
|
186
302
|
.map(function (modelName) {
|
|
187
|
-
return [modelName, util_1.getStorename(namespaceName, modelName)];
|
|
303
|
+
return [modelName, (0, util_1.getStorename)(namespaceName, modelName)];
|
|
188
304
|
})
|
|
189
305
|
.filter(function (_a) {
|
|
190
|
-
var _b =
|
|
306
|
+
var _b = __read(_a, 2), storeName = _b[1];
|
|
191
307
|
return !objectStoreNames.has(storeName);
|
|
192
308
|
})
|
|
193
309
|
.forEach(function (_a) {
|
|
194
|
-
var _b =
|
|
310
|
+
var _b = __read(_a, 2), modelName = _b[0], storeName = _b[1];
|
|
195
311
|
_this.createObjectStoreForModel(db, namespaceName, storeName, modelName);
|
|
196
312
|
});
|
|
197
313
|
});
|
|
@@ -213,9 +329,9 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
213
329
|
});
|
|
214
330
|
};
|
|
215
331
|
IndexedDBAdapter.prototype._get = function (storeOrStoreName, keyArr) {
|
|
216
|
-
return
|
|
332
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
217
333
|
var index, storeName, store, result;
|
|
218
|
-
return
|
|
334
|
+
return __generator(this, function (_a) {
|
|
219
335
|
switch (_a.label) {
|
|
220
336
|
case 0:
|
|
221
337
|
if (typeof storeOrStoreName === 'string') {
|
|
@@ -236,8 +352,8 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
236
352
|
};
|
|
237
353
|
IndexedDBAdapter.prototype.clear = function () {
|
|
238
354
|
var _a;
|
|
239
|
-
return
|
|
240
|
-
return
|
|
355
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
356
|
+
return __generator(this, function (_b) {
|
|
241
357
|
switch (_b.label) {
|
|
242
358
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
243
359
|
case 1:
|
|
@@ -254,89 +370,112 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
254
370
|
});
|
|
255
371
|
};
|
|
256
372
|
IndexedDBAdapter.prototype.save = function (model, condition) {
|
|
257
|
-
var e_2,
|
|
258
|
-
return
|
|
259
|
-
var
|
|
260
|
-
return
|
|
261
|
-
switch (
|
|
373
|
+
var _a, e_2, _b, _c;
|
|
374
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
375
|
+
var _d, storeName, set, connectionStoreNames, modelKeyValues, tx, store, fromDB, result, _loop_1, this_1, _e, connectionStoreNames_1, connectionStoreNames_1_1, e_2_1;
|
|
376
|
+
return __generator(this, function (_f) {
|
|
377
|
+
switch (_f.label) {
|
|
262
378
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
263
379
|
case 1:
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
tx = this.db.transaction(
|
|
380
|
+
_f.sent();
|
|
381
|
+
_d = this.saveMetadata(model), storeName = _d.storeName, set = _d.set, connectionStoreNames = _d.connectionStoreNames, modelKeyValues = _d.modelKeyValues;
|
|
382
|
+
tx = this.db.transaction(__spreadArray([storeName], __read(Array.from(set.values())), false), 'readwrite');
|
|
267
383
|
store = tx.objectStore(storeName);
|
|
268
384
|
return [4 /*yield*/, this._get(store, modelKeyValues)];
|
|
269
385
|
case 2:
|
|
270
|
-
fromDB =
|
|
386
|
+
fromDB = _f.sent();
|
|
271
387
|
this.validateSaveCondition(condition, fromDB);
|
|
272
388
|
result = [];
|
|
273
|
-
|
|
389
|
+
_f.label = 3;
|
|
274
390
|
case 3:
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
391
|
+
_f.trys.push([3, 9, 10, 15]);
|
|
392
|
+
_loop_1 = function () {
|
|
393
|
+
var resItem, storeName_1, item, instance, keys, store_1, itemKeyValues, fromDB_1, opType, key;
|
|
394
|
+
return __generator(this, function (_g) {
|
|
395
|
+
switch (_g.label) {
|
|
396
|
+
case 0:
|
|
397
|
+
_c = connectionStoreNames_1_1.value;
|
|
398
|
+
_e = false;
|
|
399
|
+
_g.label = 1;
|
|
400
|
+
case 1:
|
|
401
|
+
_g.trys.push([1, , 6, 7]);
|
|
402
|
+
resItem = _c;
|
|
403
|
+
storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;
|
|
404
|
+
store_1 = tx.objectStore(storeName_1);
|
|
405
|
+
itemKeyValues = keys.map(function (key) { return item[key]; });
|
|
406
|
+
return [4 /*yield*/, this_1._get(store_1, itemKeyValues)];
|
|
407
|
+
case 2:
|
|
408
|
+
fromDB_1 = _g.sent();
|
|
409
|
+
opType = fromDB_1 ? types_1.OpType.UPDATE : types_1.OpType.INSERT;
|
|
410
|
+
if (!((0, util_1.keysEqual)(itemKeyValues, modelKeyValues) ||
|
|
411
|
+
opType === types_1.OpType.INSERT)) return [3 /*break*/, 5];
|
|
412
|
+
return [4 /*yield*/, store_1
|
|
413
|
+
.index('byPk')
|
|
414
|
+
.getKey(this_1.canonicalKeyPath(itemKeyValues))];
|
|
415
|
+
case 3:
|
|
416
|
+
key = _g.sent();
|
|
417
|
+
return [4 /*yield*/, store_1.put(item, key)];
|
|
418
|
+
case 4:
|
|
419
|
+
_g.sent();
|
|
420
|
+
result.push([instance, opType]);
|
|
421
|
+
_g.label = 5;
|
|
422
|
+
case 5: return [3 /*break*/, 7];
|
|
423
|
+
case 6:
|
|
424
|
+
_e = true;
|
|
425
|
+
return [7 /*endfinally*/];
|
|
426
|
+
case 7: return [2 /*return*/];
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
};
|
|
430
|
+
this_1 = this;
|
|
431
|
+
_e = true, connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
432
|
+
_f.label = 4;
|
|
278
433
|
case 4: return [4 /*yield*/, connectionStoreNames_1.next()];
|
|
279
434
|
case 5:
|
|
280
|
-
if (!(connectionStoreNames_1_1 =
|
|
281
|
-
|
|
282
|
-
storeName_1 = resItem.storeName, item = resItem.item, instance = resItem.instance, keys = resItem.keys;
|
|
283
|
-
store_1 = tx.objectStore(storeName_1);
|
|
284
|
-
itemKeyValues = keys.map(function (key) { return item[key]; });
|
|
285
|
-
return [4 /*yield*/, this._get(store_1, itemKeyValues)];
|
|
435
|
+
if (!(connectionStoreNames_1_1 = _f.sent(), _a = connectionStoreNames_1_1.done, !_a)) return [3 /*break*/, 8];
|
|
436
|
+
return [5 /*yield**/, _loop_1()];
|
|
286
437
|
case 6:
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
.getKey(this.canonicalKeyPath(itemKeyValues))];
|
|
294
|
-
case 7:
|
|
295
|
-
key = _c.sent();
|
|
296
|
-
return [4 /*yield*/, store_1.put(item, key)];
|
|
297
|
-
case 8:
|
|
298
|
-
_c.sent();
|
|
299
|
-
result.push([instance, opType]);
|
|
300
|
-
_c.label = 9;
|
|
301
|
-
case 9: return [3 /*break*/, 4];
|
|
302
|
-
case 10: return [3 /*break*/, 17];
|
|
303
|
-
case 11:
|
|
304
|
-
e_2_1 = _c.sent();
|
|
438
|
+
_f.sent();
|
|
439
|
+
_f.label = 7;
|
|
440
|
+
case 7: return [3 /*break*/, 4];
|
|
441
|
+
case 8: return [3 /*break*/, 15];
|
|
442
|
+
case 9:
|
|
443
|
+
e_2_1 = _f.sent();
|
|
305
444
|
e_2 = { error: e_2_1 };
|
|
306
|
-
return [3 /*break*/,
|
|
307
|
-
case
|
|
308
|
-
|
|
309
|
-
if (!(
|
|
310
|
-
return [4 /*yield*/,
|
|
445
|
+
return [3 /*break*/, 15];
|
|
446
|
+
case 10:
|
|
447
|
+
_f.trys.push([10, , 13, 14]);
|
|
448
|
+
if (!(!_e && !_a && (_b = connectionStoreNames_1.return))) return [3 /*break*/, 12];
|
|
449
|
+
return [4 /*yield*/, _b.call(connectionStoreNames_1)];
|
|
450
|
+
case 11:
|
|
451
|
+
_f.sent();
|
|
452
|
+
_f.label = 12;
|
|
453
|
+
case 12: return [3 /*break*/, 14];
|
|
311
454
|
case 13:
|
|
312
|
-
_c.sent();
|
|
313
|
-
_c.label = 14;
|
|
314
|
-
case 14: return [3 /*break*/, 16];
|
|
315
|
-
case 15:
|
|
316
455
|
if (e_2) throw e_2.error;
|
|
317
456
|
return [7 /*endfinally*/];
|
|
318
|
-
case
|
|
319
|
-
case
|
|
320
|
-
case
|
|
321
|
-
|
|
457
|
+
case 14: return [7 /*endfinally*/];
|
|
458
|
+
case 15: return [4 /*yield*/, tx.done];
|
|
459
|
+
case 16:
|
|
460
|
+
_f.sent();
|
|
322
461
|
return [2 /*return*/, result];
|
|
323
462
|
}
|
|
324
463
|
});
|
|
325
464
|
});
|
|
326
465
|
};
|
|
327
466
|
IndexedDBAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
|
|
328
|
-
return
|
|
467
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
329
468
|
var _a, storeName, namespaceName, queryByKey, predicates, hasSort, hasPagination, records;
|
|
330
469
|
var _this = this;
|
|
331
|
-
return
|
|
470
|
+
return __generator(this, function (_b) {
|
|
332
471
|
switch (_b.label) {
|
|
333
472
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
334
473
|
case 1:
|
|
335
474
|
_b.sent();
|
|
336
475
|
_a = this.queryMetadata(modelConstructor, predicate, pagination), storeName = _a.storeName, namespaceName = _a.namespaceName, queryByKey = _a.queryByKey, predicates = _a.predicates, hasSort = _a.hasSort, hasPagination = _a.hasPagination;
|
|
337
|
-
return [4 /*yield*/, (function () { return
|
|
476
|
+
return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
338
477
|
var record, filtered, all;
|
|
339
|
-
return
|
|
478
|
+
return __generator(this, function (_a) {
|
|
340
479
|
switch (_a.label) {
|
|
341
480
|
case 0:
|
|
342
481
|
if (!queryByKey) return [3 /*break*/, 2];
|
|
@@ -374,9 +513,9 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
374
513
|
};
|
|
375
514
|
IndexedDBAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
376
515
|
if (firstOrLast === void 0) { firstOrLast = types_1.QueryOne.FIRST; }
|
|
377
|
-
return
|
|
516
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
378
517
|
var storeName, cursor, result;
|
|
379
|
-
return
|
|
518
|
+
return __generator(this, function (_a) {
|
|
380
519
|
switch (_a.label) {
|
|
381
520
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
382
521
|
case 1:
|
|
@@ -395,11 +534,11 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
395
534
|
});
|
|
396
535
|
};
|
|
397
536
|
IndexedDBAdapter.prototype.batchSave = function (modelConstructor, items) {
|
|
398
|
-
return
|
|
399
|
-
var modelName, namespaceName, storeName, result, txn, store,
|
|
537
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
538
|
+
var modelName, namespaceName, storeName, result, txn, store, _loop_2, this_2, items_1, items_1_1, item, e_3_1;
|
|
400
539
|
var e_3, _a;
|
|
401
540
|
var _this = this;
|
|
402
|
-
return
|
|
541
|
+
return __generator(this, function (_b) {
|
|
403
542
|
switch (_b.label) {
|
|
404
543
|
case 0: return [4 /*yield*/, this.checkPrivate()];
|
|
405
544
|
case 1:
|
|
@@ -413,24 +552,24 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
413
552
|
result = [];
|
|
414
553
|
txn = this.db.transaction(storeName, 'readwrite');
|
|
415
554
|
store = txn.store;
|
|
416
|
-
|
|
555
|
+
_loop_2 = function (item) {
|
|
417
556
|
var model, connectedModels, keyValues, _deleted, index, key, instance;
|
|
418
|
-
return
|
|
419
|
-
switch (
|
|
557
|
+
return __generator(this, function (_c) {
|
|
558
|
+
switch (_c.label) {
|
|
420
559
|
case 0:
|
|
421
|
-
model =
|
|
422
|
-
connectedModels = util_1.traverseModel(modelName, model,
|
|
423
|
-
keyValues =
|
|
560
|
+
model = this_2.modelInstanceCreator(modelConstructor, item);
|
|
561
|
+
connectedModels = (0, util_1.traverseModel)(modelName, model, this_2.schema.namespaces[namespaceName], this_2.modelInstanceCreator, this_2.getModelConstructorByModelName);
|
|
562
|
+
keyValues = this_2.getIndexKeyValuesFromModel(model);
|
|
424
563
|
_deleted = item._deleted;
|
|
425
564
|
index = store.index('byPk');
|
|
426
|
-
return [4 /*yield*/, index.getKey(
|
|
565
|
+
return [4 /*yield*/, index.getKey(this_2.canonicalKeyPath(keyValues))];
|
|
427
566
|
case 1:
|
|
428
|
-
key =
|
|
567
|
+
key = _c.sent();
|
|
429
568
|
if (!!_deleted) return [3 /*break*/, 3];
|
|
430
569
|
instance = connectedModels.find(function (_a) {
|
|
431
570
|
var instance = _a.instance;
|
|
432
571
|
var instanceKeyValues = _this.getIndexKeyValuesFromModel(instance);
|
|
433
|
-
return util_1.keysEqual(instanceKeyValues, keyValues);
|
|
572
|
+
return (0, util_1.keysEqual)(instanceKeyValues, keyValues);
|
|
434
573
|
}).instance;
|
|
435
574
|
result.push([
|
|
436
575
|
instance,
|
|
@@ -438,29 +577,29 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
438
577
|
]);
|
|
439
578
|
return [4 /*yield*/, store.put(instance, key)];
|
|
440
579
|
case 2:
|
|
441
|
-
|
|
580
|
+
_c.sent();
|
|
442
581
|
return [3 /*break*/, 5];
|
|
443
582
|
case 3:
|
|
444
583
|
result.push([item, types_1.OpType.DELETE]);
|
|
445
584
|
if (!key) return [3 /*break*/, 5];
|
|
446
585
|
return [4 /*yield*/, store.delete(key)];
|
|
447
586
|
case 4:
|
|
448
|
-
|
|
449
|
-
|
|
587
|
+
_c.sent();
|
|
588
|
+
_c.label = 5;
|
|
450
589
|
case 5: return [2 /*return*/];
|
|
451
590
|
}
|
|
452
591
|
});
|
|
453
592
|
};
|
|
454
|
-
|
|
593
|
+
this_2 = this;
|
|
455
594
|
_b.label = 2;
|
|
456
595
|
case 2:
|
|
457
596
|
_b.trys.push([2, 7, 8, 9]);
|
|
458
|
-
items_1 =
|
|
597
|
+
items_1 = __values(items), items_1_1 = items_1.next();
|
|
459
598
|
_b.label = 3;
|
|
460
599
|
case 3:
|
|
461
600
|
if (!!items_1_1.done) return [3 /*break*/, 6];
|
|
462
601
|
item = items_1_1.value;
|
|
463
|
-
return [5 /*yield**/,
|
|
602
|
+
return [5 /*yield**/, _loop_2(item)];
|
|
464
603
|
case 4:
|
|
465
604
|
_b.sent();
|
|
466
605
|
_b.label = 5;
|
|
@@ -487,107 +626,125 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
487
626
|
});
|
|
488
627
|
};
|
|
489
628
|
IndexedDBAdapter.prototype.deleteItem = function (deleteQueue) {
|
|
490
|
-
var e_4,
|
|
491
|
-
return
|
|
492
|
-
var connectionStoreNames, tx,
|
|
493
|
-
return
|
|
494
|
-
switch (
|
|
629
|
+
var _a, e_4, _b, _c, _d, e_5, _e, _f;
|
|
630
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
631
|
+
var connectionStoreNames, tx, _g, _h, _j, deleteItem, storeName, items, store, _k, items_2, items_2_1, item, key, keyValues, itemKey, e_5_1, e_4_1;
|
|
632
|
+
return __generator(this, function (_l) {
|
|
633
|
+
switch (_l.label) {
|
|
495
634
|
case 0:
|
|
496
635
|
connectionStoreNames = deleteQueue.map(function (_a) {
|
|
497
636
|
var storeName = _a.storeName;
|
|
498
637
|
return storeName;
|
|
499
638
|
});
|
|
500
|
-
tx = this.db.transaction(
|
|
501
|
-
|
|
639
|
+
tx = this.db.transaction(__spreadArray([], __read(connectionStoreNames), false), 'readwrite');
|
|
640
|
+
_l.label = 1;
|
|
502
641
|
case 1:
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
case 2: return [4 /*yield*/,
|
|
642
|
+
_l.trys.push([1, 28, 29, 34]);
|
|
643
|
+
_g = true, _h = __asyncValues(deleteQueue);
|
|
644
|
+
_l.label = 2;
|
|
645
|
+
case 2: return [4 /*yield*/, _h.next()];
|
|
507
646
|
case 3:
|
|
508
|
-
if (!(
|
|
509
|
-
|
|
647
|
+
if (!(_j = _l.sent(), _a = _j.done, !_a)) return [3 /*break*/, 27];
|
|
648
|
+
_c = _j.value;
|
|
649
|
+
_g = false;
|
|
650
|
+
_l.label = 4;
|
|
651
|
+
case 4:
|
|
652
|
+
_l.trys.push([4, , 25, 26]);
|
|
653
|
+
deleteItem = _c;
|
|
510
654
|
storeName = deleteItem.storeName, items = deleteItem.items;
|
|
511
655
|
store = tx.objectStore(storeName);
|
|
512
|
-
|
|
513
|
-
case
|
|
514
|
-
|
|
515
|
-
items_2 =
|
|
516
|
-
|
|
517
|
-
case
|
|
518
|
-
case
|
|
519
|
-
if (!(items_2_1 =
|
|
520
|
-
|
|
521
|
-
|
|
656
|
+
_l.label = 5;
|
|
657
|
+
case 5:
|
|
658
|
+
_l.trys.push([5, 18, 19, 24]);
|
|
659
|
+
_k = true, items_2 = (e_5 = void 0, __asyncValues(items));
|
|
660
|
+
_l.label = 6;
|
|
661
|
+
case 6: return [4 /*yield*/, items_2.next()];
|
|
662
|
+
case 7:
|
|
663
|
+
if (!(items_2_1 = _l.sent(), _d = items_2_1.done, !_d)) return [3 /*break*/, 17];
|
|
664
|
+
_f = items_2_1.value;
|
|
665
|
+
_k = false;
|
|
666
|
+
_l.label = 8;
|
|
667
|
+
case 8:
|
|
668
|
+
_l.trys.push([8, , 15, 16]);
|
|
669
|
+
item = _f;
|
|
670
|
+
if (!item) return [3 /*break*/, 14];
|
|
522
671
|
key = void 0;
|
|
523
|
-
if (!(typeof item === 'object')) return [3 /*break*/,
|
|
672
|
+
if (!(typeof item === 'object')) return [3 /*break*/, 10];
|
|
524
673
|
keyValues = this.getIndexKeyValuesFromModel(item);
|
|
525
674
|
return [4 /*yield*/, store
|
|
526
675
|
.index('byPk')
|
|
527
676
|
.getKey(this.canonicalKeyPath(keyValues))];
|
|
528
|
-
case 7:
|
|
529
|
-
key = _e.sent();
|
|
530
|
-
return [3 /*break*/, 10];
|
|
531
|
-
case 8:
|
|
532
|
-
itemKey = item.toString();
|
|
533
|
-
return [4 /*yield*/, store.index('byPk').getKey(itemKey)];
|
|
534
677
|
case 9:
|
|
535
|
-
key =
|
|
536
|
-
|
|
678
|
+
key = _l.sent();
|
|
679
|
+
return [3 /*break*/, 12];
|
|
537
680
|
case 10:
|
|
538
|
-
|
|
539
|
-
return [4 /*yield*/, store.
|
|
681
|
+
itemKey = item.toString();
|
|
682
|
+
return [4 /*yield*/, store.index('byPk').getKey(itemKey)];
|
|
540
683
|
case 11:
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
case 12:
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
684
|
+
key = _l.sent();
|
|
685
|
+
_l.label = 12;
|
|
686
|
+
case 12:
|
|
687
|
+
if (!(key !== undefined)) return [3 /*break*/, 14];
|
|
688
|
+
return [4 /*yield*/, store.delete(key)];
|
|
689
|
+
case 13:
|
|
690
|
+
_l.sent();
|
|
691
|
+
_l.label = 14;
|
|
692
|
+
case 14: return [3 /*break*/, 16];
|
|
549
693
|
case 15:
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
case
|
|
554
|
-
_e.sent();
|
|
555
|
-
_e.label = 17;
|
|
556
|
-
case 17: return [3 /*break*/, 19];
|
|
694
|
+
_k = true;
|
|
695
|
+
return [7 /*endfinally*/];
|
|
696
|
+
case 16: return [3 /*break*/, 6];
|
|
697
|
+
case 17: return [3 /*break*/, 24];
|
|
557
698
|
case 18:
|
|
699
|
+
e_5_1 = _l.sent();
|
|
700
|
+
e_5 = { error: e_5_1 };
|
|
701
|
+
return [3 /*break*/, 24];
|
|
702
|
+
case 19:
|
|
703
|
+
_l.trys.push([19, , 22, 23]);
|
|
704
|
+
if (!(!_k && !_d && (_e = items_2.return))) return [3 /*break*/, 21];
|
|
705
|
+
return [4 /*yield*/, _e.call(items_2)];
|
|
706
|
+
case 20:
|
|
707
|
+
_l.sent();
|
|
708
|
+
_l.label = 21;
|
|
709
|
+
case 21: return [3 /*break*/, 23];
|
|
710
|
+
case 22:
|
|
558
711
|
if (e_5) throw e_5.error;
|
|
559
712
|
return [7 /*endfinally*/];
|
|
560
|
-
case
|
|
561
|
-
case
|
|
562
|
-
case
|
|
563
|
-
|
|
564
|
-
|
|
713
|
+
case 23: return [7 /*endfinally*/];
|
|
714
|
+
case 24: return [3 /*break*/, 26];
|
|
715
|
+
case 25:
|
|
716
|
+
_g = true;
|
|
717
|
+
return [7 /*endfinally*/];
|
|
718
|
+
case 26: return [3 /*break*/, 2];
|
|
719
|
+
case 27: return [3 /*break*/, 34];
|
|
720
|
+
case 28:
|
|
721
|
+
e_4_1 = _l.sent();
|
|
565
722
|
e_4 = { error: e_4_1 };
|
|
566
|
-
return [3 /*break*/,
|
|
567
|
-
case
|
|
568
|
-
|
|
569
|
-
if (!(
|
|
570
|
-
return [4 /*yield*/,
|
|
571
|
-
case
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
case
|
|
575
|
-
case
|
|
723
|
+
return [3 /*break*/, 34];
|
|
724
|
+
case 29:
|
|
725
|
+
_l.trys.push([29, , 32, 33]);
|
|
726
|
+
if (!(!_g && !_a && (_b = _h.return))) return [3 /*break*/, 31];
|
|
727
|
+
return [4 /*yield*/, _b.call(_h)];
|
|
728
|
+
case 30:
|
|
729
|
+
_l.sent();
|
|
730
|
+
_l.label = 31;
|
|
731
|
+
case 31: return [3 /*break*/, 33];
|
|
732
|
+
case 32:
|
|
576
733
|
if (e_4) throw e_4.error;
|
|
577
734
|
return [7 /*endfinally*/];
|
|
578
|
-
case
|
|
579
|
-
case
|
|
735
|
+
case 33: return [7 /*endfinally*/];
|
|
736
|
+
case 34: return [2 /*return*/];
|
|
580
737
|
}
|
|
581
738
|
});
|
|
582
739
|
});
|
|
583
740
|
};
|
|
584
741
|
//#region platform-specific helper methods
|
|
585
742
|
IndexedDBAdapter.prototype.checkPrivate = function () {
|
|
586
|
-
return
|
|
743
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
587
744
|
var isPrivate;
|
|
588
|
-
return
|
|
745
|
+
return __generator(this, function (_a) {
|
|
589
746
|
switch (_a.label) {
|
|
590
|
-
case 0: return [4 /*yield*/, util_1.isPrivateMode().then(function (isPrivate) {
|
|
747
|
+
case 0: return [4 /*yield*/, (0, util_1.isPrivateMode)().then(function (isPrivate) {
|
|
591
748
|
return isPrivate;
|
|
592
749
|
})];
|
|
593
750
|
case 1:
|
|
@@ -615,13 +772,13 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
615
772
|
* https://github.com/aws-amplify/amplify-js/pull/10527
|
|
616
773
|
*/
|
|
617
774
|
IndexedDBAdapter.prototype.setSafariCompatabilityMode = function () {
|
|
618
|
-
return
|
|
775
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
619
776
|
var _a;
|
|
620
|
-
return
|
|
777
|
+
return __generator(this, function (_b) {
|
|
621
778
|
switch (_b.label) {
|
|
622
779
|
case 0:
|
|
623
780
|
_a = this;
|
|
624
|
-
return [4 /*yield*/, util_1.isSafariCompatabilityMode()];
|
|
781
|
+
return [4 /*yield*/, (0, util_1.isSafariCompatabilityMode)()];
|
|
625
782
|
case 1:
|
|
626
783
|
_a.safariCompatabilityMode = _b.sent();
|
|
627
784
|
if (this.safariCompatabilityMode === true) {
|
|
@@ -633,7 +790,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
633
790
|
});
|
|
634
791
|
};
|
|
635
792
|
IndexedDBAdapter.prototype.getNamespaceAndModelFromStorename = function (storeName) {
|
|
636
|
-
var _a =
|
|
793
|
+
var _a = __read(storeName.split('_')), namespaceName = _a[0], modelNameArr = _a.slice(1);
|
|
637
794
|
return {
|
|
638
795
|
namespaceName: namespaceName,
|
|
639
796
|
modelName: modelNameArr.join('_'),
|
|
@@ -645,14 +802,14 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
645
802
|
});
|
|
646
803
|
var indexes = this.schema.namespaces[namespaceName].relationships[modelName].indexes;
|
|
647
804
|
indexes.forEach(function (_a) {
|
|
648
|
-
var _b =
|
|
805
|
+
var _b = __read(_a, 3), idxName = _b[0], keyPath = _b[1], options = _b[2];
|
|
649
806
|
store.createIndex(idxName, keyPath, options);
|
|
650
807
|
});
|
|
651
808
|
return store;
|
|
652
809
|
};
|
|
653
810
|
IndexedDBAdapter.prototype.getByKey = function (storeName, keyValue) {
|
|
654
|
-
return
|
|
655
|
-
return
|
|
811
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
812
|
+
return __generator(this, function (_a) {
|
|
656
813
|
switch (_a.label) {
|
|
657
814
|
case 0: return [4 /*yield*/, this._get(storeName, keyValue)];
|
|
658
815
|
case 1: return [2 /*return*/, _a.sent()];
|
|
@@ -661,8 +818,8 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
661
818
|
});
|
|
662
819
|
};
|
|
663
820
|
IndexedDBAdapter.prototype.getAll = function (storeName) {
|
|
664
|
-
return
|
|
665
|
-
return
|
|
821
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
822
|
+
return __generator(this, function (_a) {
|
|
666
823
|
switch (_a.label) {
|
|
667
824
|
case 0: return [4 /*yield*/, this.db.getAll(storeName)];
|
|
668
825
|
case 1: return [2 /*return*/, _a.sent()];
|
|
@@ -686,7 +843,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
686
843
|
var queries = [];
|
|
687
844
|
var predicateIndex = new Map();
|
|
688
845
|
try {
|
|
689
|
-
for (var predicates_1 =
|
|
846
|
+
for (var predicates_1 = __values(predicates), predicates_1_1 = predicates_1.next(); !predicates_1_1.done; predicates_1_1 = predicates_1.next()) {
|
|
690
847
|
var predicate = predicates_1_1.value;
|
|
691
848
|
predicateIndex.set(String(predicate.field), predicate);
|
|
692
849
|
}
|
|
@@ -699,13 +856,13 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
699
856
|
finally { if (e_6) throw e_6.error; }
|
|
700
857
|
}
|
|
701
858
|
var store = transaction.objectStore(storeName);
|
|
702
|
-
var
|
|
703
|
-
var e_8,
|
|
859
|
+
var _loop_3 = function (name_1) {
|
|
860
|
+
var e_8, _e;
|
|
704
861
|
var idx = store.index(name_1);
|
|
705
862
|
var keypath = Array.isArray(idx.keyPath) ? idx.keyPath : [idx.keyPath];
|
|
706
863
|
var matchingPredicateValues = [];
|
|
707
864
|
try {
|
|
708
|
-
for (var keypath_1 = (e_8 = void 0,
|
|
865
|
+
for (var keypath_1 = (e_8 = void 0, __values(keypath)), keypath_1_1 = keypath_1.next(); !keypath_1_1.done; keypath_1_1 = keypath_1.next()) {
|
|
709
866
|
var field = keypath_1_1.value;
|
|
710
867
|
var p = predicateIndex.get(field);
|
|
711
868
|
if (p && p.operand !== null && p.operand !== undefined) {
|
|
@@ -719,7 +876,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
719
876
|
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
720
877
|
finally {
|
|
721
878
|
try {
|
|
722
|
-
if (keypath_1_1 && !keypath_1_1.done && (
|
|
879
|
+
if (keypath_1_1 && !keypath_1_1.done && (_e = keypath_1.return)) _e.call(keypath_1);
|
|
723
880
|
}
|
|
724
881
|
finally { if (e_8) throw e_8.error; }
|
|
725
882
|
}
|
|
@@ -738,9 +895,9 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
738
895
|
}
|
|
739
896
|
};
|
|
740
897
|
try {
|
|
741
|
-
for (var _c =
|
|
898
|
+
for (var _c = __values(store.indexNames), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
742
899
|
var name_1 = _d.value;
|
|
743
|
-
|
|
900
|
+
_loop_3(name_1);
|
|
744
901
|
}
|
|
745
902
|
}
|
|
746
903
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
@@ -753,10 +910,10 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
753
910
|
return queries;
|
|
754
911
|
};
|
|
755
912
|
IndexedDBAdapter.prototype.baseQueryIndex = function (storeName, predicates, transaction) {
|
|
756
|
-
return
|
|
913
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
757
914
|
var predicateObjs, type, fieldPredicates, txn, result, groupQueries, objectQueries, indexedQueries;
|
|
758
915
|
var _this = this;
|
|
759
|
-
return
|
|
916
|
+
return __generator(this, function (_a) {
|
|
760
917
|
switch (_a.label) {
|
|
761
918
|
case 0:
|
|
762
919
|
predicateObjs = predicates.predicates, type = predicates.type;
|
|
@@ -765,17 +922,17 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
765
922
|
// so, we unpack and/or groups until we find a group with more than 1
|
|
766
923
|
// child OR a child that is not a group (and is therefore a predicate "object").
|
|
767
924
|
while (predicateObjs.length === 1 &&
|
|
768
|
-
types_1.isPredicateGroup(predicateObjs[0]) &&
|
|
925
|
+
(0, types_1.isPredicateGroup)(predicateObjs[0]) &&
|
|
769
926
|
predicateObjs[0].type !== 'not') {
|
|
770
927
|
type = predicateObjs[0].type;
|
|
771
928
|
predicateObjs = predicateObjs[0].predicates;
|
|
772
929
|
}
|
|
773
|
-
fieldPredicates = predicateObjs.filter(function (p) { return types_1.isPredicateObj(p) && p.operator === 'eq'; });
|
|
930
|
+
fieldPredicates = predicateObjs.filter(function (p) { return (0, types_1.isPredicateObj)(p) && p.operator === 'eq'; });
|
|
774
931
|
txn = transaction || this.db.transaction(storeName);
|
|
775
932
|
result = {};
|
|
776
933
|
if (!(type === 'or')) return [3 /*break*/, 2];
|
|
777
934
|
return [4 /*yield*/, Promise.all(predicateObjs
|
|
778
|
-
.filter(function (o) { return types_1.isPredicateGroup(o) && o.type === 'and'; })
|
|
935
|
+
.filter(function (o) { return (0, types_1.isPredicateGroup)(o) && o.type === 'and'; })
|
|
779
936
|
.map(function (o) {
|
|
780
937
|
return _this.baseQueryIndex(storeName, o, txn);
|
|
781
938
|
})).then(function (queries) {
|
|
@@ -786,11 +943,11 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
786
943
|
case 1:
|
|
787
944
|
groupQueries = _a.sent();
|
|
788
945
|
objectQueries = predicateObjs
|
|
789
|
-
.filter(function (o) { return types_1.isPredicateObj(o); })
|
|
946
|
+
.filter(function (o) { return (0, types_1.isPredicateObj)(o); })
|
|
790
947
|
.map(function (o) {
|
|
791
948
|
return _this.matchingIndexQueries(storeName, [o], txn);
|
|
792
949
|
});
|
|
793
|
-
indexedQueries =
|
|
950
|
+
indexedQueries = __spreadArray(__spreadArray([], __read(groupQueries), false), __read(objectQueries), false).map(function (q) { return q[0]; })
|
|
794
951
|
.filter(function (i) { return i; });
|
|
795
952
|
// if, after hunting for base queries, we don't have exactly 1 base query
|
|
796
953
|
// for each child group + object, stop trying to optimize. we're not dealing
|
|
@@ -836,10 +993,10 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
836
993
|
});
|
|
837
994
|
};
|
|
838
995
|
IndexedDBAdapter.prototype.filterOnPredicate = function (storeName, predicates) {
|
|
839
|
-
return
|
|
996
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
840
997
|
var predicateObjs, type, _a, groupType, indexedQueries, candidateResults, distinctResults, indexedQueries_1, indexedQueries_1_1, query, resultGroup, resultGroup_1, resultGroup_1_1, item, distinctificationString, e_9_1, filtered;
|
|
841
998
|
var e_9, _b, e_10, _c;
|
|
842
|
-
return
|
|
999
|
+
return __generator(this, function (_d) {
|
|
843
1000
|
switch (_d.label) {
|
|
844
1001
|
case 0:
|
|
845
1002
|
predicateObjs = predicates.predicates, type = predicates.type;
|
|
@@ -861,7 +1018,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
861
1018
|
_d.label = 4;
|
|
862
1019
|
case 4:
|
|
863
1020
|
_d.trys.push([4, 9, 10, 11]);
|
|
864
|
-
indexedQueries_1 =
|
|
1021
|
+
indexedQueries_1 = __values(indexedQueries), indexedQueries_1_1 = indexedQueries_1.next();
|
|
865
1022
|
_d.label = 5;
|
|
866
1023
|
case 5:
|
|
867
1024
|
if (!!indexedQueries_1_1.done) return [3 /*break*/, 8];
|
|
@@ -870,7 +1027,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
870
1027
|
case 6:
|
|
871
1028
|
resultGroup = _d.sent();
|
|
872
1029
|
try {
|
|
873
|
-
for (resultGroup_1 = (e_10 = void 0,
|
|
1030
|
+
for (resultGroup_1 = (e_10 = void 0, __values(resultGroup)), resultGroup_1_1 = resultGroup_1.next(); !resultGroup_1_1.done; resultGroup_1_1 = resultGroup_1.next()) {
|
|
874
1031
|
item = resultGroup_1_1.value;
|
|
875
1032
|
distinctificationString = JSON.stringify(item);
|
|
876
1033
|
distinctResults.set(distinctificationString, item);
|
|
@@ -912,7 +1069,7 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
912
1069
|
_d.label = 14;
|
|
913
1070
|
case 14:
|
|
914
1071
|
filtered = predicateObjs
|
|
915
|
-
? candidateResults.filter(function (m) { return util_1.validatePredicate(m, type, predicateObjs); })
|
|
1072
|
+
? candidateResults.filter(function (m) { return (0, util_1.validatePredicate)(m, type, predicateObjs); })
|
|
916
1073
|
: candidateResults;
|
|
917
1074
|
return [2 /*return*/, filtered];
|
|
918
1075
|
}
|
|
@@ -920,12 +1077,12 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
920
1077
|
});
|
|
921
1078
|
};
|
|
922
1079
|
IndexedDBAdapter.prototype.inMemoryPagination = function (records, pagination) {
|
|
923
|
-
return util_1.inMemoryPagination(records, pagination);
|
|
1080
|
+
return (0, util_1.inMemoryPagination)(records, pagination);
|
|
924
1081
|
};
|
|
925
1082
|
IndexedDBAdapter.prototype.enginePagination = function (storeName, pagination) {
|
|
926
|
-
return
|
|
1083
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
927
1084
|
var result, _a, page, _b, limit, initialRecord, cursor, pageResults, hasLimit;
|
|
928
|
-
return
|
|
1085
|
+
return __generator(this, function (_c) {
|
|
929
1086
|
switch (_c.label) {
|
|
930
1087
|
case 0:
|
|
931
1088
|
if (!pagination) return [3 /*break*/, 7];
|
|
@@ -971,4 +1128,3 @@ var IndexedDBAdapter = /** @class */ (function (_super) {
|
|
|
971
1128
|
return IndexedDBAdapter;
|
|
972
1129
|
}(StorageAdapterBase_1.StorageAdapterBase));
|
|
973
1130
|
exports.default = new IndexedDBAdapter();
|
|
974
|
-
//# sourceMappingURL=IndexedDBAdapter.js.map
|