diff options
author | Florian Dold <florian@dold.me> | 2021-12-15 02:58:36 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-12-15 02:58:36 +0100 |
commit | f4d66541ed58ac71e0f8218be8ff210cdc024cb4 (patch) | |
tree | 78be3e33c09720d7f4bd5a91afc169f1e24a896a | |
parent | e84a1789af2a0292128807b86649a45c4da0a51c (diff) |
idb-bridge: avoid unhandled rejection when closing DB
-rw-r--r-- | packages/idb-bridge/src/MemoryBackend.ts | 10 | ||||
-rw-r--r-- | packages/idb-bridge/src/bridge-idb.ts | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts index de4bca883..99d5b796e 100644 --- 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 index 9ea258fd2..5d5f531b0 100644 --- 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 && |