@preference-sl/pref-viewer 2.10.0-beta.24 → 2.10.0-beta.25
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/package.json +1 -1
- package/src/gltf-storage.js +10 -37
package/package.json
CHANGED
package/src/gltf-storage.js
CHANGED
|
@@ -12,52 +12,25 @@ function _getDbOrThrow() {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// --- internal helpers -------------------------------------------------------
|
|
15
|
-
|
|
16
|
-
function _createStoreIfMissing(db, storeName) {
|
|
17
|
-
if (!db.objectStoreNames.contains(storeName)) {
|
|
18
|
-
const store = db.createObjectStore(storeName, { keyPath: "id" });
|
|
19
|
-
store.createIndex("expirationTimeStamp", "expirationTimeStamp", { unique: false });
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Opens a DB without specifying a version. If the required object store doesn't
|
|
25
|
-
* exist, it re-opens with (currentVersion + 1) to create it.
|
|
26
|
-
*/
|
|
27
15
|
function _openEnsuringStore(dbName, storeName) {
|
|
28
16
|
return new Promise((resolve, reject) => {
|
|
29
|
-
const open = indexedDB.open(dbName);
|
|
17
|
+
const open = indexedDB.open(dbName, 5);
|
|
30
18
|
|
|
31
19
|
open.onblocked = () => reject(new Error("Open blocked by another tab or worker"));
|
|
32
20
|
open.onerror = () => reject(open.error);
|
|
33
|
-
|
|
34
|
-
open.onupgradeneeded = (e) => {
|
|
35
|
-
// First creation path (brand-new DB)
|
|
36
|
-
const db = e.target.result;
|
|
37
|
-
_createStoreIfMissing(db, storeName);
|
|
38
|
-
};
|
|
39
|
-
|
|
40
21
|
open.onsuccess = (e) => {
|
|
41
|
-
|
|
22
|
+
resolve(e.target.result);
|
|
23
|
+
}
|
|
24
|
+
open.onupgradeneeded = (ev) => {
|
|
25
|
+
const upgradeDb = ev.target.result;
|
|
42
26
|
|
|
43
|
-
//
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
return;
|
|
27
|
+
// Eliminar la object store si ya existe
|
|
28
|
+
if (upgradeDb.objectStoreNames.contains(storeName)) {
|
|
29
|
+
upgradeDb.deleteObjectStore(storeName);
|
|
47
30
|
}
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
db.close();
|
|
52
|
-
|
|
53
|
-
const upgrade = indexedDB.open(dbName, nextVersion);
|
|
54
|
-
upgrade.onblocked = () => reject(new Error("Upgrade blocked by another tab or worker"));
|
|
55
|
-
upgrade.onerror = () => reject(upgrade.error);
|
|
56
|
-
upgrade.onupgradeneeded = (ev) => {
|
|
57
|
-
const upDb = ev.target.result;
|
|
58
|
-
_createStoreIfMissing(upDb, storeName);
|
|
59
|
-
};
|
|
60
|
-
upgrade.onsuccess = (ev) => resolve(ev.target.result);
|
|
32
|
+
const store = upgradeDb.createObjectStore(storeName, { keyPath: 'id' });
|
|
33
|
+
store.createIndex('expirationTimeStamp', 'expirationTimeStamp', { unique: false });
|
|
61
34
|
};
|
|
62
35
|
});
|
|
63
36
|
}
|