Socket
Socket
Sign inDemoInstall

deferred-leveldown

Package Overview
Dependencies
Maintainers
3
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deferred-leveldown - npm Package Compare versions

Comparing version 5.2.0 to 5.2.1

8

CHANGELOG.md
# Changelog
## [5.2.1] - 2019-09-17
### Fixed
- Create iterators in order and add `type` property for `reachdown` ([#75](https://github.com/Level/deferred-leveldown/issues/75)) ([**@vweevers**](https://github.com/vweevers))
## [5.2.0] - 2019-09-06

@@ -262,2 +268,4 @@

[5.2.1]: https://github.com/Level/deferred-leveldown/compare/v5.2.0...v5.2.1
[5.2.0]: https://github.com/Level/deferred-leveldown/compare/v5.1.0...v5.2.0

@@ -264,0 +272,0 @@

16

deferred-leveldown.js

@@ -11,3 +11,2 @@ var AbstractLevelDOWN = require('abstract-leveldown').AbstractLevelDOWN

this._operations = []
this._iterators = []
closed(this)

@@ -18,2 +17,4 @@ }

DeferredLevelDOWN.prototype.type = 'deferred-leveldown'
DeferredLevelDOWN.prototype._open = function (options, callback) {

@@ -26,9 +27,10 @@ var self = this

self._operations.forEach(function (op) {
self._db[op.method].apply(self._db, op.args)
if (op.iterator) {
op.iterator.setDb(self._db)
} else {
self._db[op.method].apply(self._db, op.args)
}
})
self._operations = []
self._iterators.forEach(function (it) {
it.setDb(self._db)
})
self._iterators = []
open(self)

@@ -79,3 +81,3 @@ callback()

var it = new DeferredIterator(options)
this._iterators.push(it)
this._operations.push({ iterator: it })
return it

@@ -82,0 +84,0 @@ }

{
"name": "deferred-leveldown",
"version": "5.2.0",
"version": "5.2.1",
"description": "For handling delayed-open on LevelDOWN compatible libraries",

@@ -24,2 +24,3 @@ "license": "MIT",

"nyc": "^14.0.0",
"reachdown": "^1.0.0",
"standard": "^14.0.0",

@@ -26,0 +27,0 @@ "tape": "^4.10.0"

var test = require('tape')
var reachdown = require('reachdown')
var DeferredLevelDOWN = require('./')
var noop = function () {}

@@ -485,1 +487,52 @@ test('deferred open gets correct options', function (t) {

})
test('iterator - is created in order', function (t) {
t.plan(4)
function db () {
return {
order: [],
iterator: function (options) {
this.order.push('iterator created')
return {}
},
put: function (key, value, options, callback) {
this.order.push('put')
},
open: function (options, callback) {
process.nextTick(callback)
}
}
}
var ld1 = new DeferredLevelDOWN(db())
var ld2 = new DeferredLevelDOWN(db())
ld1.iterator()
ld1.put('key', 'value', noop)
ld2.put('key', 'value', noop)
ld2.iterator()
ld1.open(function (err) {
t.error(err, 'no error')
t.same(ld1._db.order, ['iterator created', 'put'])
})
ld2.open(function (err) {
t.error(err, 'no error')
t.same(ld2._db.order, ['put', 'iterator created'])
})
})
test('reachdown supports deferred-leveldown', function (t) {
// Define just enough methods for reachdown to see this as a real db
var db = { open: noop, _batch: noop, _iterator: noop }
var ld = new DeferredLevelDOWN(db)
t.is(ld.type, 'deferred-leveldown')
t.is(reachdown(ld, 'deferred-leveldown'), ld)
t.is(reachdown(ld), db)
t.end()
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc