Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use nextTick of abstract-leveldown #195

Merged
merged 1 commit into from
Apr 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 8 additions & 19 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down Expand Up @@ -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) {
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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) {
Expand All @@ -203,25 +196,21 @@ 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)
}

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()
Expand Down
20 changes: 4 additions & 16 deletions iterator.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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()
Expand All @@ -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
}
Expand All @@ -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
Expand Down
4 changes: 0 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down
4 changes: 1 addition & 3 deletions util/clear.js
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
1 change: 0 additions & 1 deletion util/immediate-browser.js

This file was deleted.

1 change: 0 additions & 1 deletion util/immediate.js

This file was deleted.