commit f4d66541ed58ac71e0f8218be8ff210cdc024cb4
parent e84a1789af2a0292128807b86649a45c4da0a51c
Author: Florian Dold <florian@dold.me>
Date: Wed, 15 Dec 2021 02:58:36 +0100
idb-bridge: avoid unhandled rejection when closing DB
Diffstat:
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts
@@ -562,10 +562,12 @@ export class MemoryBackend implements Backend {
throw Error("connection not found - already closed?");
}
const myDb = this.databases[myConn.dbName];
- // FIXME: what if we're still in a transaction?
- myDb.connectionCookies = myDb.connectionCookies.filter(
- (x) => x != conn.connectionCookie,
- );
+ if (myDb) {
+ // FIXME: what if we're still in a transaction?
+ myDb.connectionCookies = myDb.connectionCookies.filter(
+ (x) => x != conn.connectionCookie,
+ );
+ }
delete this.connections[conn.connectionCookie];
this.disconnectCond.trigger();
}
diff --git a/packages/idb-bridge/src/bridge-idb.ts b/packages/idb-bridge/src/bridge-idb.ts
@@ -2655,13 +2655,13 @@ export class BridgeIDBTransaction
}
}
- await waitMacroQueue();
-
if (!request._source) {
// Special requests like indexes that just need to run some code,
// with error handling already built into operation
await operation();
} else {
+ await waitMacroQueue();
+
let event;
try {
BridgeIDBFactory.enableTracing &&