pubo-web 1.0.78 → 1.0.80
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/dist/pubo-web.js +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +3 -1
- package/es/storage/cookie.d.ts +1 -0
- package/es/storage/cookie.js +5 -0
- package/es/storage/indexed-db/indexed-db-storage.d.ts +27 -0
- package/es/storage/indexed-db/indexed-db-storage.js +255 -0
- package/es/storage/indexed-db/indexed-db-utils.d.ts +21 -0
- package/es/storage/indexed-db/indexed-db-utils.js +309 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +15 -1
- package/lib/storage/cookie.d.ts +1 -0
- package/lib/storage/cookie.js +12 -0
- package/lib/storage/indexed-db/indexed-db-storage.d.ts +27 -0
- package/lib/storage/indexed-db/indexed-db-storage.js +261 -0
- package/lib/storage/indexed-db/indexed-db-utils.d.ts +21 -0
- package/lib/storage/indexed-db/indexed-db-utils.js +315 -0
- package/package.json +3 -3
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) {
|
|
3
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
4
|
+
resolve(value);
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
+
function fulfilled(value) {
|
|
9
|
+
try {
|
|
10
|
+
step(generator.next(value));
|
|
11
|
+
} catch (e) {
|
|
12
|
+
reject(e);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function rejected(value) {
|
|
16
|
+
try {
|
|
17
|
+
step(generator["throw"](value));
|
|
18
|
+
} catch (e) {
|
|
19
|
+
reject(e);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function step(result) {
|
|
23
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
24
|
+
}
|
|
25
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
29
|
+
var _ = {
|
|
30
|
+
label: 0,
|
|
31
|
+
sent: function sent() {
|
|
32
|
+
if (t[0] & 1) throw t[1];
|
|
33
|
+
return t[1];
|
|
34
|
+
},
|
|
35
|
+
trys: [],
|
|
36
|
+
ops: []
|
|
37
|
+
},
|
|
38
|
+
f,
|
|
39
|
+
y,
|
|
40
|
+
t,
|
|
41
|
+
g;
|
|
42
|
+
return g = {
|
|
43
|
+
next: verb(0),
|
|
44
|
+
"throw": verb(1),
|
|
45
|
+
"return": verb(2)
|
|
46
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
47
|
+
return this;
|
|
48
|
+
}), g;
|
|
49
|
+
function verb(n) {
|
|
50
|
+
return function (v) {
|
|
51
|
+
return step([n, v]);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function step(op) {
|
|
55
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
56
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
57
|
+
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;
|
|
58
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
59
|
+
switch (op[0]) {
|
|
60
|
+
case 0:
|
|
61
|
+
case 1:
|
|
62
|
+
t = op;
|
|
63
|
+
break;
|
|
64
|
+
case 4:
|
|
65
|
+
_.label++;
|
|
66
|
+
return {
|
|
67
|
+
value: op[1],
|
|
68
|
+
done: false
|
|
69
|
+
};
|
|
70
|
+
case 5:
|
|
71
|
+
_.label++;
|
|
72
|
+
y = op[1];
|
|
73
|
+
op = [0];
|
|
74
|
+
continue;
|
|
75
|
+
case 7:
|
|
76
|
+
op = _.ops.pop();
|
|
77
|
+
_.trys.pop();
|
|
78
|
+
continue;
|
|
79
|
+
default:
|
|
80
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
81
|
+
_ = 0;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
85
|
+
_.label = op[1];
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
89
|
+
_.label = t[1];
|
|
90
|
+
t = op;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
if (t && _.label < t[2]) {
|
|
94
|
+
_.label = t[2];
|
|
95
|
+
_.ops.push(op);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
if (t[2]) _.ops.pop();
|
|
99
|
+
_.trys.pop();
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
op = body.call(thisArg, _);
|
|
103
|
+
} catch (e) {
|
|
104
|
+
op = [6, e];
|
|
105
|
+
y = 0;
|
|
106
|
+
} finally {
|
|
107
|
+
f = t = 0;
|
|
108
|
+
}
|
|
109
|
+
if (op[0] & 5) throw op[1];
|
|
110
|
+
return {
|
|
111
|
+
value: op[0] ? op[1] : void 0,
|
|
112
|
+
done: true
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
var __values = this && this.__values || function (o) {
|
|
117
|
+
var s = typeof Symbol === "function" && Symbol.iterator,
|
|
118
|
+
m = s && o[s],
|
|
119
|
+
i = 0;
|
|
120
|
+
if (m) return m.call(o);
|
|
121
|
+
if (o && typeof o.length === "number") return {
|
|
122
|
+
next: function next() {
|
|
123
|
+
if (o && i >= o.length) o = void 0;
|
|
124
|
+
return {
|
|
125
|
+
value: o && o[i++],
|
|
126
|
+
done: !o
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
131
|
+
};
|
|
132
|
+
var __read = this && this.__read || function (o, n) {
|
|
133
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
134
|
+
if (!m) return o;
|
|
135
|
+
var i = m.call(o),
|
|
136
|
+
r,
|
|
137
|
+
ar = [],
|
|
138
|
+
e;
|
|
139
|
+
try {
|
|
140
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
141
|
+
} catch (error) {
|
|
142
|
+
e = {
|
|
143
|
+
error: error
|
|
144
|
+
};
|
|
145
|
+
} finally {
|
|
146
|
+
try {
|
|
147
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
148
|
+
} finally {
|
|
149
|
+
if (e) throw e.error;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return ar;
|
|
153
|
+
};
|
|
154
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
155
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
156
|
+
if (ar || !(i in from)) {
|
|
157
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
158
|
+
ar[i] = from[i];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
162
|
+
};
|
|
163
|
+
var IndexedDBUtils = /** @class */function () {
|
|
164
|
+
function IndexedDBUtils(name, version, tables) {
|
|
165
|
+
this.indexedDB = self.indexedDB;
|
|
166
|
+
this.get = this.createTransaction(function (objectStore, key) {
|
|
167
|
+
return objectStore.get(key);
|
|
168
|
+
});
|
|
169
|
+
this.getAll = this.createTransaction(function (objectStore) {
|
|
170
|
+
return objectStore.getAll();
|
|
171
|
+
});
|
|
172
|
+
this["delete"] = this.createTransaction(function (objectStore, key) {
|
|
173
|
+
return objectStore["delete"](key);
|
|
174
|
+
});
|
|
175
|
+
this.put = this.createTransaction(function (objectStore, values) {
|
|
176
|
+
return objectStore.put(values);
|
|
177
|
+
});
|
|
178
|
+
this.name = name;
|
|
179
|
+
this.version = version;
|
|
180
|
+
this.tables = tables;
|
|
181
|
+
}
|
|
182
|
+
IndexedDBUtils.prototype.open = function () {
|
|
183
|
+
var _this = this;
|
|
184
|
+
return new Promise(function (resolve, reject) {
|
|
185
|
+
var _a;
|
|
186
|
+
var request = (_a = _this.indexedDB) === null || _a === void 0 ? void 0 : _a.open(_this.name, _this.version);
|
|
187
|
+
request.onupgradeneeded = function (event) {
|
|
188
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
189
|
+
var _a, _b, table;
|
|
190
|
+
var e_1, _c;
|
|
191
|
+
var _this = this;
|
|
192
|
+
return __generator(this, function (_d) {
|
|
193
|
+
// @ts-ignore
|
|
194
|
+
this.db = event.target.result;
|
|
195
|
+
// @ts-ignore
|
|
196
|
+
this.transaction = event.target.transaction;
|
|
197
|
+
this.transaction.oncomplete = function () {
|
|
198
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
199
|
+
var _a, _b, table, e_2_1;
|
|
200
|
+
var e_2, _c;
|
|
201
|
+
return __generator(this, function (_d) {
|
|
202
|
+
switch (_d.label) {
|
|
203
|
+
case 0:
|
|
204
|
+
this.transaction = null;
|
|
205
|
+
_d.label = 1;
|
|
206
|
+
case 1:
|
|
207
|
+
_d.trys.push([1, 6, 7, 8]);
|
|
208
|
+
_a = __values(this.tables), _b = _a.next();
|
|
209
|
+
_d.label = 2;
|
|
210
|
+
case 2:
|
|
211
|
+
if (!!_b.done) return [3 /*break*/, 5];
|
|
212
|
+
table = _b.value;
|
|
213
|
+
if (!table["default"]) return [3 /*break*/, 4];
|
|
214
|
+
return [4 /*yield*/, this.put(table.name, table["default"])];
|
|
215
|
+
case 3:
|
|
216
|
+
_d.sent();
|
|
217
|
+
_d.label = 4;
|
|
218
|
+
case 4:
|
|
219
|
+
_b = _a.next();
|
|
220
|
+
return [3 /*break*/, 2];
|
|
221
|
+
case 5:
|
|
222
|
+
return [3 /*break*/, 8];
|
|
223
|
+
case 6:
|
|
224
|
+
e_2_1 = _d.sent();
|
|
225
|
+
e_2 = {
|
|
226
|
+
error: e_2_1
|
|
227
|
+
};
|
|
228
|
+
return [3 /*break*/, 8];
|
|
229
|
+
case 7:
|
|
230
|
+
try {
|
|
231
|
+
if (_b && !_b.done && (_c = _a["return"])) _c.call(_a);
|
|
232
|
+
} finally {
|
|
233
|
+
if (e_2) throw e_2.error;
|
|
234
|
+
}
|
|
235
|
+
return [7 /*endfinally*/];
|
|
236
|
+
case 8:
|
|
237
|
+
return [2 /*return*/];
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
try {
|
|
244
|
+
for (_a = __values(this.tables), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
245
|
+
table = _b.value;
|
|
246
|
+
this.createTable(table);
|
|
247
|
+
}
|
|
248
|
+
} catch (e_1_1) {
|
|
249
|
+
e_1 = {
|
|
250
|
+
error: e_1_1
|
|
251
|
+
};
|
|
252
|
+
} finally {
|
|
253
|
+
try {
|
|
254
|
+
if (_b && !_b.done && (_c = _a["return"])) _c.call(_a);
|
|
255
|
+
} finally {
|
|
256
|
+
if (e_1) throw e_1.error;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
resolve('success');
|
|
260
|
+
return [2 /*return*/];
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
request.onsuccess = function () {
|
|
266
|
+
_this.db = request.result;
|
|
267
|
+
resolve('success');
|
|
268
|
+
};
|
|
269
|
+
request.onerror = function (error) {
|
|
270
|
+
console.error('indexed db connect error: ', error);
|
|
271
|
+
reject(error);
|
|
272
|
+
};
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
IndexedDBUtils.prototype.createTable = function (table) {
|
|
276
|
+
if (!this.db.objectStoreNames.contains(table.name)) {
|
|
277
|
+
this.db.createObjectStore(table.name, table.options || {
|
|
278
|
+
keyPath: '_id',
|
|
279
|
+
autoIncrement: true
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
IndexedDBUtils.prototype.createTransaction = function (getRequest) {
|
|
284
|
+
var _this = this;
|
|
285
|
+
return function (store) {
|
|
286
|
+
var args = [];
|
|
287
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
288
|
+
args[_i - 1] = arguments[_i];
|
|
289
|
+
}
|
|
290
|
+
return new Promise(function (resolve, reject) {
|
|
291
|
+
if (!_this.db) {
|
|
292
|
+
reject('not connect');
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
var transaction = _this.db.transaction([store], 'readwrite');
|
|
296
|
+
var objectStore = transaction.objectStore(store);
|
|
297
|
+
var request = getRequest.apply(void 0, __spreadArray([objectStore], __read(args), false));
|
|
298
|
+
request.onerror = function (event) {
|
|
299
|
+
reject(event);
|
|
300
|
+
};
|
|
301
|
+
request.onsuccess = function () {
|
|
302
|
+
resolve(request.result);
|
|
303
|
+
};
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
return IndexedDBUtils;
|
|
308
|
+
}();
|
|
309
|
+
export { IndexedDBUtils };
|
package/lib/index.d.ts
CHANGED
|
@@ -5,3 +5,5 @@ export { WebStorage } from './storage';
|
|
|
5
5
|
export { default as WebsocketClient } from './websocket/client';
|
|
6
6
|
export { DragMethod } from './dom/drag';
|
|
7
7
|
export { pickFiles } from './file/pick';
|
|
8
|
+
export { IndexedStorage } from './storage/indexed-db/indexed-db-storage';
|
|
9
|
+
export { getCookieValue } from './storage/cookie';
|
package/lib/index.js
CHANGED
|
@@ -8,7 +8,7 @@ var __importDefault = this && this.__importDefault || function (mod) {
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", {
|
|
9
9
|
value: true
|
|
10
10
|
});
|
|
11
|
-
exports.pickFiles = exports.DragMethod = exports.WebsocketClient = exports.WebStorage = exports.downloadFile = exports.blob2file = exports.blob2base64 = exports.blob2text = exports.loadScript = void 0;
|
|
11
|
+
exports.getCookieValue = exports.IndexedStorage = exports.pickFiles = exports.DragMethod = exports.WebsocketClient = exports.WebStorage = exports.downloadFile = exports.blob2file = exports.blob2base64 = exports.blob2text = exports.loadScript = void 0;
|
|
12
12
|
var load_script_1 = require("./load-script");
|
|
13
13
|
Object.defineProperty(exports, "loadScript", {
|
|
14
14
|
enumerable: true,
|
|
@@ -69,4 +69,18 @@ Object.defineProperty(exports, "pickFiles", {
|
|
|
69
69
|
get: function get() {
|
|
70
70
|
return pick_1.pickFiles;
|
|
71
71
|
}
|
|
72
|
+
});
|
|
73
|
+
var indexed_db_storage_1 = require("./storage/indexed-db/indexed-db-storage");
|
|
74
|
+
Object.defineProperty(exports, "IndexedStorage", {
|
|
75
|
+
enumerable: true,
|
|
76
|
+
get: function get() {
|
|
77
|
+
return indexed_db_storage_1.IndexedStorage;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
var cookie_1 = require("./storage/cookie");
|
|
81
|
+
Object.defineProperty(exports, "getCookieValue", {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function get() {
|
|
84
|
+
return cookie_1.getCookieValue;
|
|
85
|
+
}
|
|
72
86
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getCookieValue: (key: string) => string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCookieValue = void 0;
|
|
7
|
+
var getCookieValue = function getCookieValue(key) {
|
|
8
|
+
var reg = new RegExp("(^| )".concat(key, "=([^;]*)(;|$)"));
|
|
9
|
+
var res = reg.exec(document.cookie);
|
|
10
|
+
return res ? res[2] : '';
|
|
11
|
+
};
|
|
12
|
+
exports.getCookieValue = getCookieValue;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IndexedDBUtils, IndexedTable } from './indexed-db-utils';
|
|
2
|
+
export declare class Storage {
|
|
3
|
+
private readonly utils;
|
|
4
|
+
private readonly store;
|
|
5
|
+
constructor(utils: IndexedDBUtils, store: string);
|
|
6
|
+
getState(): Promise<any>;
|
|
7
|
+
setState(values: any): void;
|
|
8
|
+
merge(values: any): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export interface StorageFactoryType {
|
|
11
|
+
name: string;
|
|
12
|
+
version: number;
|
|
13
|
+
tables?: IndexedTable[];
|
|
14
|
+
}
|
|
15
|
+
export declare class IndexedStorage {
|
|
16
|
+
private readonly name;
|
|
17
|
+
private readonly version;
|
|
18
|
+
utils: IndexedDBUtils;
|
|
19
|
+
private _cache;
|
|
20
|
+
private readonly tables;
|
|
21
|
+
private connected;
|
|
22
|
+
private connecting;
|
|
23
|
+
constructor({ name, version, tables }: StorageFactoryType);
|
|
24
|
+
register(tables: IndexedTable[]): void;
|
|
25
|
+
connect(): Promise<void>;
|
|
26
|
+
get(store: string): Storage;
|
|
27
|
+
}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) {
|
|
15
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
16
|
+
resolve(value);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) {
|
|
21
|
+
try {
|
|
22
|
+
step(generator.next(value));
|
|
23
|
+
} catch (e) {
|
|
24
|
+
reject(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function rejected(value) {
|
|
28
|
+
try {
|
|
29
|
+
step(generator["throw"](value));
|
|
30
|
+
} catch (e) {
|
|
31
|
+
reject(e);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function step(result) {
|
|
35
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
36
|
+
}
|
|
37
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
41
|
+
var _ = {
|
|
42
|
+
label: 0,
|
|
43
|
+
sent: function sent() {
|
|
44
|
+
if (t[0] & 1) throw t[1];
|
|
45
|
+
return t[1];
|
|
46
|
+
},
|
|
47
|
+
trys: [],
|
|
48
|
+
ops: []
|
|
49
|
+
},
|
|
50
|
+
f,
|
|
51
|
+
y,
|
|
52
|
+
t,
|
|
53
|
+
g;
|
|
54
|
+
return g = {
|
|
55
|
+
next: verb(0),
|
|
56
|
+
"throw": verb(1),
|
|
57
|
+
"return": verb(2)
|
|
58
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
59
|
+
return this;
|
|
60
|
+
}), g;
|
|
61
|
+
function verb(n) {
|
|
62
|
+
return function (v) {
|
|
63
|
+
return step([n, v]);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function step(op) {
|
|
67
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
68
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
69
|
+
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;
|
|
70
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
71
|
+
switch (op[0]) {
|
|
72
|
+
case 0:
|
|
73
|
+
case 1:
|
|
74
|
+
t = op;
|
|
75
|
+
break;
|
|
76
|
+
case 4:
|
|
77
|
+
_.label++;
|
|
78
|
+
return {
|
|
79
|
+
value: op[1],
|
|
80
|
+
done: false
|
|
81
|
+
};
|
|
82
|
+
case 5:
|
|
83
|
+
_.label++;
|
|
84
|
+
y = op[1];
|
|
85
|
+
op = [0];
|
|
86
|
+
continue;
|
|
87
|
+
case 7:
|
|
88
|
+
op = _.ops.pop();
|
|
89
|
+
_.trys.pop();
|
|
90
|
+
continue;
|
|
91
|
+
default:
|
|
92
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
93
|
+
_ = 0;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
97
|
+
_.label = op[1];
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
101
|
+
_.label = t[1];
|
|
102
|
+
t = op;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
if (t && _.label < t[2]) {
|
|
106
|
+
_.label = t[2];
|
|
107
|
+
_.ops.push(op);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
if (t[2]) _.ops.pop();
|
|
111
|
+
_.trys.pop();
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
op = body.call(thisArg, _);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
op = [6, e];
|
|
117
|
+
y = 0;
|
|
118
|
+
} finally {
|
|
119
|
+
f = t = 0;
|
|
120
|
+
}
|
|
121
|
+
if (op[0] & 5) throw op[1];
|
|
122
|
+
return {
|
|
123
|
+
value: op[0] ? op[1] : void 0,
|
|
124
|
+
done: true
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
var __read = this && this.__read || function (o, n) {
|
|
129
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
130
|
+
if (!m) return o;
|
|
131
|
+
var i = m.call(o),
|
|
132
|
+
r,
|
|
133
|
+
ar = [],
|
|
134
|
+
e;
|
|
135
|
+
try {
|
|
136
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
137
|
+
} catch (error) {
|
|
138
|
+
e = {
|
|
139
|
+
error: error
|
|
140
|
+
};
|
|
141
|
+
} finally {
|
|
142
|
+
try {
|
|
143
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
144
|
+
} finally {
|
|
145
|
+
if (e) throw e.error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return ar;
|
|
149
|
+
};
|
|
150
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
151
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
152
|
+
if (ar || !(i in from)) {
|
|
153
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
154
|
+
ar[i] = from[i];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
158
|
+
};
|
|
159
|
+
Object.defineProperty(exports, "__esModule", {
|
|
160
|
+
value: true
|
|
161
|
+
});
|
|
162
|
+
exports.IndexedStorage = exports.Storage = void 0;
|
|
163
|
+
var pubo_utils_1 = require("pubo-utils");
|
|
164
|
+
var indexed_db_utils_1 = require("./indexed-db-utils");
|
|
165
|
+
var Storage = /** @class */function () {
|
|
166
|
+
function Storage(utils, store) {
|
|
167
|
+
this.utils = utils;
|
|
168
|
+
this.store = store;
|
|
169
|
+
}
|
|
170
|
+
Storage.prototype.getState = function () {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
172
|
+
return __generator(this, function (_a) {
|
|
173
|
+
return [2 /*return*/, this.utils.get(this.store, 1)];
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
Storage.prototype.setState = function (values) {
|
|
178
|
+
this.utils.put(this.store, __assign(__assign({}, values), {
|
|
179
|
+
_id: 1
|
|
180
|
+
}));
|
|
181
|
+
};
|
|
182
|
+
Storage.prototype.merge = function (values) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
184
|
+
var state;
|
|
185
|
+
return __generator(this, function (_a) {
|
|
186
|
+
switch (_a.label) {
|
|
187
|
+
case 0:
|
|
188
|
+
return [4 /*yield*/, this.getState()];
|
|
189
|
+
case 1:
|
|
190
|
+
state = _a.sent();
|
|
191
|
+
this.setState = __assign(__assign(__assign({}, state), values), {
|
|
192
|
+
_id: 1
|
|
193
|
+
});
|
|
194
|
+
return [2 /*return*/];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
return Storage;
|
|
201
|
+
}();
|
|
202
|
+
exports.Storage = Storage;
|
|
203
|
+
var IndexedStorage = /** @class */function () {
|
|
204
|
+
function IndexedStorage(_a) {
|
|
205
|
+
var name = _a.name,
|
|
206
|
+
version = _a.version,
|
|
207
|
+
tables = _a.tables;
|
|
208
|
+
this._cache = {};
|
|
209
|
+
this.tables = [];
|
|
210
|
+
this.connected = false;
|
|
211
|
+
this.connecting = false;
|
|
212
|
+
this.name = name;
|
|
213
|
+
this.version = version;
|
|
214
|
+
this.tables = tables !== null && tables !== void 0 ? tables : [];
|
|
215
|
+
}
|
|
216
|
+
IndexedStorage.prototype.register = function (tables) {
|
|
217
|
+
var _a;
|
|
218
|
+
(_a = this.tables).push.apply(_a, __spreadArray([], __read(tables), false));
|
|
219
|
+
};
|
|
220
|
+
IndexedStorage.prototype.connect = function () {
|
|
221
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
222
|
+
return __generator(this, function (_a) {
|
|
223
|
+
switch (_a.label) {
|
|
224
|
+
case 0:
|
|
225
|
+
if (this.connected) {
|
|
226
|
+
return [2 /*return*/];
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if (!this.connecting) return [3 /*break*/, 4];
|
|
230
|
+
_a.label = 1;
|
|
231
|
+
case 1:
|
|
232
|
+
if (!!this.connecting) return [3 /*break*/, 3];
|
|
233
|
+
return [4 /*yield*/, (0, pubo_utils_1.sleep)(100)];
|
|
234
|
+
case 2:
|
|
235
|
+
_a.sent();
|
|
236
|
+
return [3 /*break*/, 1];
|
|
237
|
+
case 3:
|
|
238
|
+
return [2 /*return*/];
|
|
239
|
+
case 4:
|
|
240
|
+
this.connecting = true;
|
|
241
|
+
this.utils = new indexed_db_utils_1.IndexedDBUtils(this.name, this.version, this.tables);
|
|
242
|
+
return [4 /*yield*/, this.utils.open()];
|
|
243
|
+
case 5:
|
|
244
|
+
_a.sent();
|
|
245
|
+
this.connected = true;
|
|
246
|
+
this.connecting = false;
|
|
247
|
+
return [2 /*return*/];
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
IndexedStorage.prototype.get = function (store) {
|
|
254
|
+
if (!this._cache[store] && this.utils) {
|
|
255
|
+
this._cache[store] = new Storage(this.utils, store);
|
|
256
|
+
}
|
|
257
|
+
return this._cache[store];
|
|
258
|
+
};
|
|
259
|
+
return IndexedStorage;
|
|
260
|
+
}();
|
|
261
|
+
exports.IndexedStorage = IndexedStorage;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface IndexedTable {
|
|
2
|
+
name: string;
|
|
3
|
+
options?: any;
|
|
4
|
+
default?: any;
|
|
5
|
+
}
|
|
6
|
+
export declare class IndexedDBUtils {
|
|
7
|
+
private readonly name;
|
|
8
|
+
private readonly version;
|
|
9
|
+
private readonly indexedDB;
|
|
10
|
+
private readonly tables;
|
|
11
|
+
private db;
|
|
12
|
+
private transaction;
|
|
13
|
+
constructor(name: string, version: number, tables: IndexedTable[]);
|
|
14
|
+
open(): Promise<unknown>;
|
|
15
|
+
private createTable;
|
|
16
|
+
private createTransaction;
|
|
17
|
+
get: (store: string, values?: any) => Promise<any>;
|
|
18
|
+
getAll: (store: string, values?: any) => Promise<any>;
|
|
19
|
+
delete: (store: string, values?: any) => Promise<any>;
|
|
20
|
+
put: (store: string, values?: any) => Promise<any>;
|
|
21
|
+
}
|