deferred-leveldown
Advanced tools
Comparing version 5.2.0 to 5.2.1
# 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 @@ |
@@ -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" |
53
test.js
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() | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34437
579
8