@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
|
@@ -435,20 +435,29 @@ var IndexedDBStorageProvider = class {
|
|
|
435
435
|
// ===========================================================================
|
|
436
436
|
async connect() {
|
|
437
437
|
if (this.status === "connected" && this.db) return;
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
this.
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
438
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
439
|
+
this.status = "connecting";
|
|
440
|
+
console.log(`[IndexedDBStorage] connect: opening db=${this.dbName}${attempt > 0 ? " (retry)" : ""}`);
|
|
441
|
+
try {
|
|
442
|
+
this.db = await Promise.race([
|
|
443
|
+
this.openDatabase(),
|
|
444
|
+
new Promise(
|
|
445
|
+
(_, reject) => setTimeout(() => reject(new Error("IndexedDB open timed out after 5s")), 5e3)
|
|
446
|
+
)
|
|
447
|
+
]);
|
|
448
|
+
this.status = "connected";
|
|
449
|
+
console.log(`[IndexedDBStorage] connect: connected to db=${this.dbName}`);
|
|
450
|
+
return;
|
|
451
|
+
} catch (error) {
|
|
452
|
+
if (attempt === 0) {
|
|
453
|
+
console.warn(`[IndexedDBStorage] connect: open failed, retrying in 1s...`);
|
|
454
|
+
this.status = "disconnected";
|
|
455
|
+
await new Promise((r) => setTimeout(r, 1e3));
|
|
456
|
+
continue;
|
|
457
|
+
}
|
|
458
|
+
this.status = "error";
|
|
459
|
+
throw new Error(`IndexedDB not available: ${error}`);
|
|
460
|
+
}
|
|
452
461
|
}
|
|
453
462
|
}
|
|
454
463
|
async disconnect() {
|
|
@@ -518,17 +527,22 @@ var IndexedDBStorageProvider = class {
|
|
|
518
527
|
await new Promise((resolve) => {
|
|
519
528
|
try {
|
|
520
529
|
const req = indexedDB.deleteDatabase(this.dbName);
|
|
530
|
+
const timer = setTimeout(() => {
|
|
531
|
+
console.warn(`[IndexedDBStorage] clear: deleteDatabase timed out for db=${this.dbName}`);
|
|
532
|
+
resolve();
|
|
533
|
+
}, 5e3);
|
|
521
534
|
req.onsuccess = () => {
|
|
535
|
+
clearTimeout(timer);
|
|
522
536
|
console.log(`[IndexedDBStorage] clear: deleted db=${this.dbName}`);
|
|
523
537
|
resolve();
|
|
524
538
|
};
|
|
525
539
|
req.onerror = () => {
|
|
540
|
+
clearTimeout(timer);
|
|
526
541
|
console.warn(`[IndexedDBStorage] clear: error deleting db=${this.dbName}`, req.error);
|
|
527
542
|
resolve();
|
|
528
543
|
};
|
|
529
544
|
req.onblocked = () => {
|
|
530
|
-
console.warn(`[IndexedDBStorage] clear: deleteDatabase blocked for db=${this.dbName}
|
|
531
|
-
resolve();
|
|
545
|
+
console.warn(`[IndexedDBStorage] clear: deleteDatabase blocked for db=${this.dbName}, waiting...`);
|
|
532
546
|
};
|
|
533
547
|
} catch {
|
|
534
548
|
resolve();
|