From 14581b56eb955925b7aed9986c3feb558e08c379 Mon Sep 17 00:00:00 2001 From: Vincent Weevers Date: Fri, 3 Apr 2020 20:27:44 +0200 Subject: [PATCH] Use nextTick of abstract-leveldown --- index.js | 27 ++++++++------------------- iterator.js | 20 ++++---------------- package.json | 4 ---- util/clear.js | 4 +--- util/immediate-browser.js | 1 - util/immediate.js | 1 - 6 files changed, 13 insertions(+), 44 deletions(-) delete mode 100644 util/immediate-browser.js delete mode 100644 util/immediate.js diff --git a/index.js b/index.js index 702da84..397cb5f 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,6 @@ var inherits = require('inherits') var Iterator = require('./iterator') var serialize = require('./util/serialize') var deserialize = require('./util/deserialize') -var setImmediate = require('./util/immediate') var support = require('./util/support') var clear = require('./util/clear') var createKeyRange = require('./util/key-range') @@ -88,9 +87,7 @@ Level.prototype._get = function (key, options, callback) { try { var req = store.get(key) } catch (err) { - return setImmediate(function () { - callback(err) - }) + return this._nextTick(callback, err) } this.await(req, function (err, value) { @@ -111,9 +108,7 @@ Level.prototype._del = function (key, options, callback) { try { var req = store.delete(key) } catch (err) { - return setImmediate(function () { - callback(err) - }) + return this._nextTick(callback, err) } this.await(req, callback) @@ -127,9 +122,7 @@ Level.prototype._put = function (key, value, options, callback) { // does not support serializing the key or value respectively. var req = store.put(value, key) } catch (err) { - return setImmediate(function () { - callback(err) - }) + return this._nextTick(callback, err) } this.await(req, callback) @@ -148,7 +141,7 @@ Level.prototype._iterator = function (options) { } Level.prototype._batch = function (operations, options, callback) { - if (operations.length === 0) return setImmediate(callback) + if (operations.length === 0) return this._nextTick(callback) var store = this.store('readwrite') var transaction = store.transaction @@ -190,7 +183,7 @@ Level.prototype._clear = function (options, callback) { } catch (e) { // The lower key is greater than the upper key. // IndexedDB throws an error, but we'll just do nothing. - return setImmediate(callback) + return this._nextTick(callback) } if (options.limit >= 0) { @@ -203,9 +196,7 @@ Level.prototype._clear = function (options, callback) { var store = this.store('readwrite') var req = keyRange ? store.delete(keyRange) : store.clear() } catch (err) { - return setImmediate(function () { - callback(err) - }) + return this._nextTick(callback, err) } this.await(req, callback) @@ -213,15 +204,13 @@ Level.prototype._clear = function (options, callback) { Level.prototype._close = function (callback) { this.db.close() - setImmediate(callback) + this._nextTick(callback) } // NOTE: remove in a next major release Level.prototype.upgrade = function (callback) { if (this.status !== 'open') { - return setImmediate(function () { - callback(new Error('cannot upgrade() before open()')) - }) + return this._nextTick(callback, new Error('cannot upgrade() before open()')) } var it = this.iterator() diff --git a/iterator.js b/iterator.js index 7f3a5ca..ec5bddb 100644 --- a/iterator.js +++ b/iterator.js @@ -4,7 +4,6 @@ var inherits = require('inherits') var AbstractIterator = require('abstract-leveldown').AbstractIterator var createKeyRange = require('./util/key-range') var deserialize = require('./util/deserialize') -var setImmediate = require('./util/immediate') var noop = function () {} module.exports = Iterator @@ -101,10 +100,7 @@ Iterator.prototype._next = function (callback) { // The error should be picked up by either next() or end(). var err = this._error this._error = null - - setImmediate(function () { - callback(err) - }) + this._nextTick(callback, err) } else if (this._cache.length > 0) { var key = this._cache.shift() var value = this._cache.shift() @@ -121,11 +117,9 @@ Iterator.prototype._next = function (callback) { value = undefined } - setImmediate(function () { - callback(null, key, value) - }) + this._nextTick(callback, null, key, value) } else if (this._completed) { - setImmediate(callback) + this._nextTick(callback) } else { this._callback = callback } @@ -137,13 +131,7 @@ Iterator.prototype._deserializeValue = deserialize Iterator.prototype._end = function (callback) { if (this._aborted || this._completed) { - var err = this._error - - setImmediate(function () { - callback(err) - }) - - return + return this._nextTick(callback, this._error) } // Don't advance the cursor anymore, and the transaction will complete diff --git a/package.json b/package.json index bf63e2e..da189ce 100644 --- a/package.json +++ b/package.json @@ -22,13 +22,9 @@ "UPGRADING.md", "sauce-labs.svg" ], - "browser": { - "./util/immediate.js": "./util/immediate-browser.js" - }, "dependencies": { "abstract-leveldown": "~6.2.3", "buffer": "^5.5.0", - "immediate": "~3.2.3", "inherits": "^2.0.3", "ltgt": "^2.1.2" }, diff --git a/util/clear.js b/util/clear.js index bdf57e3..3837d86 100644 --- a/util/clear.js +++ b/util/clear.js @@ -1,9 +1,7 @@ 'use strict' -var setImmediate = require('./immediate') - module.exports = function clear (db, location, keyRange, options, callback) { - if (options.limit === 0) return setImmediate(callback) + if (options.limit === 0) return db._nextTick(callback) var transaction = db.db.transaction([location], 'readwrite') var store = transaction.objectStore(location) diff --git a/util/immediate-browser.js b/util/immediate-browser.js deleted file mode 100644 index 3e424be..0000000 --- a/util/immediate-browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('immediate') diff --git a/util/immediate.js b/util/immediate.js deleted file mode 100644 index f09f984..0000000 --- a/util/immediate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = setImmediate