From 17c15473e0dd61a32240431573d21a1b4f5b150e Mon Sep 17 00:00:00 2001 From: Jeremy Scheff Date: Mon, 11 Oct 2021 15:43:16 -0400 Subject: [PATCH] Replace setImmedaite with setTimeout - fixes #67 --- package.json | 3 +-- src/FDBDatabase.ts | 2 +- src/FDBFactory.ts | 13 ++++++------- src/FDBTransaction.ts | 4 ++-- src/lib/Database.ts | 2 +- yarn.lock | 5 ----- 6 files changed, 11 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 909985d6..bd1b64c6 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,7 @@ "lib" ], "dependencies": { - "realistic-structured-clone": "^2.0.1", - "setimmediate": "^1.0.5" + "realistic-structured-clone": "^2.0.1" }, "devDependencies": { "@types/mocha": "^5.2.7", diff --git a/src/FDBDatabase.ts b/src/FDBDatabase.ts index ac34e192..28125ae7 100644 --- a/src/FDBDatabase.ts +++ b/src/FDBDatabase.ts @@ -53,7 +53,7 @@ const closeConnection = (connection: FDBDatabase) => { }, ); } else { - setImmediate(() => { + setTimeout(() => { closeConnection(connection); }); } diff --git a/src/FDBFactory.ts b/src/FDBFactory.ts index 2f75cc5f..d75b8733 100644 --- a/src/FDBFactory.ts +++ b/src/FDBFactory.ts @@ -1,4 +1,3 @@ -import "setimmediate"; import FDBDatabase from "./FDBDatabase"; import FDBOpenDBRequest from "./FDBOpenDBRequest"; import FDBVersionChangeEvent from "./FDBVersionChangeEvent"; @@ -19,7 +18,7 @@ const waitForOthersClosedDelete = ( }); if (anyOpen) { - setImmediate(() => + setTimeout(() => waitForOthersClosedDelete(databases, name, openDatabases, cb), ); return; @@ -123,7 +122,7 @@ const runVersionchangeTransaction = ( }); if (anyOpen2) { - setImmediate(waitForOthersClosed); + setTimeout(waitForOthersClosed); return; } @@ -160,7 +159,7 @@ const runVersionchangeTransaction = ( transaction.addEventListener("abort", () => { connection._runningVersionchangeTransaction = false; request.transaction = null; - setImmediate(() => { + setTimeout(() => { cb(new AbortError()); }); }); @@ -168,7 +167,7 @@ const runVersionchangeTransaction = ( connection._runningVersionchangeTransaction = false; request.transaction = null; // Let other complete event handlers run before continuing - setImmediate(() => { + setTimeout(() => { if (connection._closePending) { cb(new AbortError()); } else { @@ -229,7 +228,7 @@ class FDBFactory { const request = new FDBOpenDBRequest(); request.source = null; - setImmediate(() => { + setTimeout(() => { const db = this._databases.get(name); const oldVersion = db !== undefined ? db.version : 0; @@ -278,7 +277,7 @@ class FDBFactory { const request = new FDBOpenDBRequest(); request.source = null; - setImmediate(() => { + setTimeout(() => { openDatabase( this._databases, name, diff --git a/src/FDBTransaction.ts b/src/FDBTransaction.ts index e6affc66..a62be0dd 100644 --- a/src/FDBTransaction.ts +++ b/src/FDBTransaction.ts @@ -80,7 +80,7 @@ class FDBTransaction extends FakeEventTarget { } } - setImmediate(() => { + setTimeout(() => { const event = new FakeEvent("abort", { bubbles: true, cancelable: false, @@ -228,7 +228,7 @@ class FDBTransaction extends FakeEventTarget { } // Give it another chance for new handlers to be set before finishing - setImmediate(this._start.bind(this)); + setTimeout(this._start.bind(this)); return; } diff --git a/src/lib/Database.ts b/src/lib/Database.ts index ad256e10..e0643984 100644 --- a/src/lib/Database.ts +++ b/src/lib/Database.ts @@ -20,7 +20,7 @@ class Database { } public processTransactions() { - setImmediate(() => { + setTimeout(() => { const anyRunning = this.transactions.some(transaction => { return ( transaction._started && transaction._state !== "finished" diff --git a/yarn.lock b/yarn.lock index 702df3cf..998ed96f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2539,11 +2539,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"