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 &&