aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-12-15 02:58:36 +0100
committerFlorian Dold <florian@dold.me>2021-12-15 02:58:36 +0100
commitf4d66541ed58ac71e0f8218be8ff210cdc024cb4 (patch)
tree78be3e33c09720d7f4bd5a91afc169f1e24a896a
parente84a1789af2a0292128807b86649a45c4da0a51c (diff)
idb-bridge: avoid unhandled rejection when closing DB
-rw-r--r--packages/idb-bridge/src/MemoryBackend.ts10
-rw-r--r--packages/idb-bridge/src/bridge-idb.ts4
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 &&