remult 3.3.7 → 3.3.8
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.
|
@@ -8,66 +8,60 @@ export class JsonEntityIndexedDbStorage {
|
|
|
8
8
|
supportsRawJson = true;
|
|
9
9
|
//@internal
|
|
10
10
|
db;
|
|
11
|
-
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
resolve(null);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
});
|
|
11
|
+
getItem(entityDbName) {
|
|
12
|
+
return this.run('readonly', (s) => s.get(entityDbName));
|
|
13
|
+
}
|
|
14
|
+
setItem(entityDbName, json) {
|
|
15
|
+
return this.run('readwrite', (s) => s.put(json, entityDbName));
|
|
16
|
+
}
|
|
17
|
+
removeItem(entityDbName) {
|
|
18
|
+
return this.run('readwrite', (s) => s.delete(entityDbName));
|
|
19
|
+
}
|
|
20
|
+
clear() {
|
|
21
|
+
return this.run('readwrite', (s) => s.clear());
|
|
26
22
|
}
|
|
27
23
|
//@internal
|
|
28
|
-
async
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const request =
|
|
33
|
-
request.onerror = (
|
|
34
|
-
request.onsuccess = (
|
|
35
|
-
db = request.result;
|
|
36
|
-
resolve(db);
|
|
37
|
-
};
|
|
38
|
-
request.onupgradeneeded = (event) => {
|
|
39
|
-
db = request.result;
|
|
40
|
-
db.createObjectStore(this.storeName);
|
|
41
|
-
};
|
|
24
|
+
async run(mode, op) {
|
|
25
|
+
const attempt = async () => {
|
|
26
|
+
const db = await this.init();
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const request = op(db.transaction([this.storeName], mode).objectStore(this.storeName));
|
|
29
|
+
request.onerror = () => reject(request.error);
|
|
30
|
+
request.onsuccess = () => resolve(request.result ?? null);
|
|
42
31
|
});
|
|
32
|
+
};
|
|
33
|
+
try {
|
|
34
|
+
return await attempt();
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
if (err?.name !== 'InvalidStateError')
|
|
38
|
+
throw err;
|
|
39
|
+
this.db = undefined;
|
|
40
|
+
return await attempt();
|
|
43
41
|
}
|
|
44
|
-
return this.db;
|
|
45
|
-
}
|
|
46
|
-
async setItem(entityDbName, json) {
|
|
47
|
-
return new Promise(async (resolve, reject) => {
|
|
48
|
-
const transaction = (await this.init()).transaction([this.storeName], 'readwrite');
|
|
49
|
-
const store = transaction.objectStore(this.storeName);
|
|
50
|
-
const request = store.put(json, entityDbName);
|
|
51
|
-
request.onerror = (event) => reject(request.error);
|
|
52
|
-
request.onsuccess = (event) => resolve();
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
async removeItem(entityDbName) {
|
|
56
|
-
return new Promise(async (resolve, reject) => {
|
|
57
|
-
const transaction = (await this.init()).transaction([this.storeName], 'readwrite');
|
|
58
|
-
const store = transaction.objectStore(this.storeName);
|
|
59
|
-
const request = store.delete(entityDbName);
|
|
60
|
-
request.onerror = (_event) => reject(request.error);
|
|
61
|
-
request.onsuccess = (_event) => resolve();
|
|
62
|
-
});
|
|
63
42
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
request
|
|
70
|
-
request.
|
|
43
|
+
//@internal
|
|
44
|
+
async init() {
|
|
45
|
+
if (this.db)
|
|
46
|
+
return this.db;
|
|
47
|
+
this.db = await new Promise((resolve, reject) => {
|
|
48
|
+
const request = indexedDB.open(this.dbName, 1);
|
|
49
|
+
request.onerror = () => reject(request.error);
|
|
50
|
+
request.onupgradeneeded = () => request.result.createObjectStore(this.storeName);
|
|
51
|
+
request.onsuccess = () => {
|
|
52
|
+
const db = request.result;
|
|
53
|
+
const forget = () => {
|
|
54
|
+
if (this.db === db)
|
|
55
|
+
this.db = undefined;
|
|
56
|
+
};
|
|
57
|
+
db.onclose = forget;
|
|
58
|
+
db.onversionchange = () => {
|
|
59
|
+
db.close();
|
|
60
|
+
forget();
|
|
61
|
+
};
|
|
62
|
+
resolve(db);
|
|
63
|
+
};
|
|
71
64
|
});
|
|
65
|
+
return this.db;
|
|
72
66
|
}
|
|
73
67
|
}
|
package/package.json
CHANGED
|
@@ -11,31 +11,57 @@ var JsonEntityIndexedDbStorage = /** @class */ (function () {
|
|
|
11
11
|
this.supportsRawJson = true;
|
|
12
12
|
}
|
|
13
13
|
JsonEntityIndexedDbStorage.prototype.getItem = function (entityDbName) {
|
|
14
|
+
return this.run('readonly', function (s) { return s.get(entityDbName); });
|
|
15
|
+
};
|
|
16
|
+
JsonEntityIndexedDbStorage.prototype.setItem = function (entityDbName, json) {
|
|
17
|
+
return this.run('readwrite', function (s) {
|
|
18
|
+
return s.put(json, entityDbName);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
JsonEntityIndexedDbStorage.prototype.removeItem = function (entityDbName) {
|
|
22
|
+
return this.run('readwrite', function (s) { return s.delete(entityDbName); });
|
|
23
|
+
};
|
|
24
|
+
JsonEntityIndexedDbStorage.prototype.clear = function () {
|
|
25
|
+
return this.run('readwrite', function (s) { return s.clear(); });
|
|
26
|
+
};
|
|
27
|
+
//@internal
|
|
28
|
+
JsonEntityIndexedDbStorage.prototype.run = function (mode, op) {
|
|
14
29
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
30
|
+
var attempt, err_1;
|
|
15
31
|
var _this = this;
|
|
16
32
|
return tslib_1.__generator(this, function (_a) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return tslib_1.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
switch (_a.label) {
|
|
34
|
+
case 0:
|
|
35
|
+
attempt = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
36
|
+
var db;
|
|
37
|
+
var _this = this;
|
|
38
|
+
return tslib_1.__generator(this, function (_a) {
|
|
39
|
+
switch (_a.label) {
|
|
40
|
+
case 0: return [4 /*yield*/, this.init()];
|
|
41
|
+
case 1:
|
|
42
|
+
db = _a.sent();
|
|
43
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
44
|
+
var request = op(db.transaction([_this.storeName], mode).objectStore(_this.storeName));
|
|
45
|
+
request.onerror = function () { return reject(request.error); };
|
|
46
|
+
request.onsuccess = function () { var _a; return resolve((_a = request.result) !== null && _a !== void 0 ? _a : null); };
|
|
47
|
+
})];
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}); };
|
|
51
|
+
_a.label = 1;
|
|
52
|
+
case 1:
|
|
53
|
+
_a.trys.push([1, 3, , 5]);
|
|
54
|
+
return [4 /*yield*/, attempt()];
|
|
55
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
56
|
+
case 3:
|
|
57
|
+
err_1 = _a.sent();
|
|
58
|
+
if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.name) !== 'InvalidStateError')
|
|
59
|
+
throw err_1;
|
|
60
|
+
this.db = undefined;
|
|
61
|
+
return [4 /*yield*/, attempt()];
|
|
62
|
+
case 4: return [2 /*return*/, _a.sent()];
|
|
63
|
+
case 5: return [2 /*return*/];
|
|
64
|
+
}
|
|
39
65
|
});
|
|
40
66
|
});
|
|
41
67
|
};
|
|
@@ -47,95 +73,36 @@ var JsonEntityIndexedDbStorage = /** @class */ (function () {
|
|
|
47
73
|
return tslib_1.__generator(this, function (_b) {
|
|
48
74
|
switch (_b.label) {
|
|
49
75
|
case 0:
|
|
50
|
-
if (
|
|
76
|
+
if (this.db)
|
|
77
|
+
return [2 /*return*/, this.db];
|
|
51
78
|
_a = this;
|
|
52
79
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
53
|
-
var db;
|
|
54
80
|
var request = indexedDB.open(_this.dbName, 1);
|
|
55
|
-
request.onerror = function (
|
|
56
|
-
request.
|
|
57
|
-
|
|
58
|
-
resolve(db);
|
|
81
|
+
request.onerror = function () { return reject(request.error); };
|
|
82
|
+
request.onupgradeneeded = function () {
|
|
83
|
+
return request.result.createObjectStore(_this.storeName);
|
|
59
84
|
};
|
|
60
|
-
request.
|
|
61
|
-
db = request.result;
|
|
62
|
-
|
|
85
|
+
request.onsuccess = function () {
|
|
86
|
+
var db = request.result;
|
|
87
|
+
var forget = function () {
|
|
88
|
+
if (_this.db === db)
|
|
89
|
+
_this.db = undefined;
|
|
90
|
+
};
|
|
91
|
+
db.onclose = forget;
|
|
92
|
+
db.onversionchange = function () {
|
|
93
|
+
db.close();
|
|
94
|
+
forget();
|
|
95
|
+
};
|
|
96
|
+
resolve(db);
|
|
63
97
|
};
|
|
64
98
|
})];
|
|
65
99
|
case 1:
|
|
66
100
|
_a.db = _b.sent();
|
|
67
|
-
|
|
68
|
-
case 2: return [2 /*return*/, this.db];
|
|
101
|
+
return [2 /*return*/, this.db];
|
|
69
102
|
}
|
|
70
103
|
});
|
|
71
104
|
});
|
|
72
105
|
};
|
|
73
|
-
JsonEntityIndexedDbStorage.prototype.setItem = function (entityDbName, json) {
|
|
74
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
75
|
-
var _this = this;
|
|
76
|
-
return tslib_1.__generator(this, function (_a) {
|
|
77
|
-
return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
78
|
-
var transaction, store, request;
|
|
79
|
-
return tslib_1.__generator(this, function (_a) {
|
|
80
|
-
switch (_a.label) {
|
|
81
|
-
case 0: return [4 /*yield*/, this.init()];
|
|
82
|
-
case 1:
|
|
83
|
-
transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
|
|
84
|
-
store = transaction.objectStore(this.storeName);
|
|
85
|
-
request = store.put(json, entityDbName);
|
|
86
|
-
request.onerror = function (event) { return reject(request.error); };
|
|
87
|
-
request.onsuccess = function (event) { return resolve(); };
|
|
88
|
-
return [2 /*return*/];
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}); })];
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
JsonEntityIndexedDbStorage.prototype.removeItem = function (entityDbName) {
|
|
96
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
97
|
-
var _this = this;
|
|
98
|
-
return tslib_1.__generator(this, function (_a) {
|
|
99
|
-
return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
100
|
-
var transaction, store, request;
|
|
101
|
-
return tslib_1.__generator(this, function (_a) {
|
|
102
|
-
switch (_a.label) {
|
|
103
|
-
case 0: return [4 /*yield*/, this.init()];
|
|
104
|
-
case 1:
|
|
105
|
-
transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
|
|
106
|
-
store = transaction.objectStore(this.storeName);
|
|
107
|
-
request = store.delete(entityDbName);
|
|
108
|
-
request.onerror = function (_event) { return reject(request.error); };
|
|
109
|
-
request.onsuccess = function (_event) { return resolve(); };
|
|
110
|
-
return [2 /*return*/];
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}); })];
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
JsonEntityIndexedDbStorage.prototype.clear = function () {
|
|
118
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
119
|
-
var _this = this;
|
|
120
|
-
return tslib_1.__generator(this, function (_a) {
|
|
121
|
-
return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
122
|
-
var transaction, store, request;
|
|
123
|
-
return tslib_1.__generator(this, function (_a) {
|
|
124
|
-
switch (_a.label) {
|
|
125
|
-
case 0: return [4 /*yield*/, this.init()];
|
|
126
|
-
case 1:
|
|
127
|
-
transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
|
|
128
|
-
store = transaction.objectStore(this.storeName);
|
|
129
|
-
request = store.clear();
|
|
130
|
-
request.onerror = function (_event) { return reject(request.error); };
|
|
131
|
-
request.onsuccess = function (_event) { return resolve(); };
|
|
132
|
-
return [2 /*return*/];
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}); })];
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
106
|
return JsonEntityIndexedDbStorage;
|
|
140
107
|
}());
|
|
141
108
|
exports.JsonEntityIndexedDbStorage = JsonEntityIndexedDbStorage;
|
|
@@ -313,8 +313,8 @@ export declare class ValueListInfo<T extends ValueListItem> implements ValueConv
|
|
|
313
313
|
toJson(val: T): any;
|
|
314
314
|
fromDb(val: any): T;
|
|
315
315
|
toDb(val: T): any;
|
|
316
|
-
toInput(val: T, inputType
|
|
317
|
-
fromInput(val: string, inputType
|
|
316
|
+
toInput(val: T, inputType?: string): string;
|
|
317
|
+
fromInput(val: string, inputType?: string): T;
|
|
318
318
|
displayValue?(val: T): string;
|
|
319
319
|
fieldTypeInDb?: string;
|
|
320
320
|
inputType?: string;
|