@unicitylabs/sphere-sdk 0.4.2 → 0.4.3
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/core/index.cjs +16 -7
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +16 -7
- package/dist/core/index.js.map +1 -1
- package/dist/impl/browser/index.cjs +30 -16
- package/dist/impl/browser/index.cjs.map +1 -1
- package/dist/impl/browser/index.js +30 -16
- package/dist/impl/browser/index.js.map +1 -1
- package/dist/index.cjs +16 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -375,20 +375,29 @@ var IndexedDBStorageProvider = class {
|
|
|
375
375
|
// ===========================================================================
|
|
376
376
|
async connect() {
|
|
377
377
|
if (this.status === "connected" && this.db) return;
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
this.
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
378
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
379
|
+
this.status = "connecting";
|
|
380
|
+
console.log(`[IndexedDBStorage] connect: opening db=${this.dbName}${attempt > 0 ? " (retry)" : ""}`);
|
|
381
|
+
try {
|
|
382
|
+
this.db = await Promise.race([
|
|
383
|
+
this.openDatabase(),
|
|
384
|
+
new Promise(
|
|
385
|
+
(_, reject) => setTimeout(() => reject(new Error("IndexedDB open timed out after 5s")), 5e3)
|
|
386
|
+
)
|
|
387
|
+
]);
|
|
388
|
+
this.status = "connected";
|
|
389
|
+
console.log(`[IndexedDBStorage] connect: connected to db=${this.dbName}`);
|
|
390
|
+
return;
|
|
391
|
+
} catch (error) {
|
|
392
|
+
if (attempt === 0) {
|
|
393
|
+
console.warn(`[IndexedDBStorage] connect: open failed, retrying in 1s...`);
|
|
394
|
+
this.status = "disconnected";
|
|
395
|
+
await new Promise((r) => setTimeout(r, 1e3));
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
this.status = "error";
|
|
399
|
+
throw new Error(`IndexedDB not available: ${error}`);
|
|
400
|
+
}
|
|
392
401
|
}
|
|
393
402
|
}
|
|
394
403
|
async disconnect() {
|
|
@@ -458,17 +467,22 @@ var IndexedDBStorageProvider = class {
|
|
|
458
467
|
await new Promise((resolve) => {
|
|
459
468
|
try {
|
|
460
469
|
const req = indexedDB.deleteDatabase(this.dbName);
|
|
470
|
+
const timer = setTimeout(() => {
|
|
471
|
+
console.warn(`[IndexedDBStorage] clear: deleteDatabase timed out for db=${this.dbName}`);
|
|
472
|
+
resolve();
|
|
473
|
+
}, 5e3);
|
|
461
474
|
req.onsuccess = () => {
|
|
475
|
+
clearTimeout(timer);
|
|
462
476
|
console.log(`[IndexedDBStorage] clear: deleted db=${this.dbName}`);
|
|
463
477
|
resolve();
|
|
464
478
|
};
|
|
465
479
|
req.onerror = () => {
|
|
480
|
+
clearTimeout(timer);
|
|
466
481
|
console.warn(`[IndexedDBStorage] clear: error deleting db=${this.dbName}`, req.error);
|
|
467
482
|
resolve();
|
|
468
483
|
};
|
|
469
484
|
req.onblocked = () => {
|
|
470
|
-
console.warn(`[IndexedDBStorage] clear: deleteDatabase blocked for db=${this.dbName}
|
|
471
|
-
resolve();
|
|
485
|
+
console.warn(`[IndexedDBStorage] clear: deleteDatabase blocked for db=${this.dbName}, waiting...`);
|
|
472
486
|
};
|
|
473
487
|
} catch {
|
|
474
488
|
resolve();
|