From aa7f4c28717f17c2825112fced6d628178b975ea Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sun, 7 Mar 2021 21:59:38 +0100 Subject: [PATCH 1/2] fix: update and fix standard --- client.js | 10 +- leveldown.js | 77 ++++++------ messages.js | 272 +++++++++++++++++++------------------------ package.json | 4 +- server.js | 59 +++++----- streams.js | 6 +- test/abstract.js | 20 ++-- test/basic.js | 84 ++++++------- test/concurrent.js | 28 ++--- test/encryptdown.js | 30 ++--- test/retry.js | 66 +++++------ test/streams.js | 28 ++--- test/subleveldown.js | 68 +++++------ 13 files changed, 362 insertions(+), 390 deletions(-) diff --git a/client.js b/client.js index 8db3488..9baadb8 100644 --- a/client.js +++ b/client.js @@ -1,12 +1,12 @@ -var levelup = require('levelup') -var encode = require('encoding-down') -var leveldown = require('./leveldown') +const levelup = require('levelup') +const encode = require('encoding-down') +const leveldown = require('./leveldown') module.exports = function (opts) { if (!opts) opts = {} - var down = leveldown(Object.assign({}, opts, { onflush: onflush })) - var db = levelup(encode(down, opts), opts) + const down = leveldown(Object.assign({}, opts, { onflush: onflush })) + const db = levelup(encode(down, opts), opts) db.createRpcStream = db.connect = connect db.isFlushed = isFlushed diff --git a/leveldown.js b/leveldown.js index e65ce71..7903a29 100644 --- a/leveldown.js +++ b/leveldown.js @@ -1,14 +1,14 @@ -var duplexify = require('duplexify') -var abstract = require('abstract-leveldown') -var util = require('util') -var eos = require('end-of-stream') -var ids = require('numeric-id-map') -var lpstream = require('length-prefixed-stream') -var reachdown = require('reachdown') -var messages = require('./messages') -var matchdown = require('./matchdown') - -var ENCODERS = [ +const duplexify = require('duplexify') +const abstract = require('abstract-leveldown') +const util = require('util') +const eos = require('end-of-stream') +const ids = require('numeric-id-map') +const lpstream = require('length-prefixed-stream') +const reachdown = require('reachdown') +const messages = require('./messages') +const matchdown = require('./matchdown') + +const ENCODERS = [ messages.Get, messages.Put, messages.Delete, @@ -16,7 +16,7 @@ var ENCODERS = [ messages.Iterator ] -var DECODERS = [ +const DECODERS = [ messages.Callback, messages.IteratorData ] @@ -47,18 +47,19 @@ Multilevel.prototype.createRpcStream = function (opts, proxy) { if (!opts) opts = {} this._ref = opts.ref || null - var self = this - var encode = this._encode - var decode = lpstream.decode() + const self = this + const encode = this._encode + const decode = lpstream.decode() decode.on('data', function (data) { if (!data.length) return - var tag = data[0] + const tag = data[0] if (tag >= DECODERS.length) return - var dec = DECODERS[tag] + const dec = DECODERS[tag] + let res try { - var res = dec.decode(data, 1) + res = dec.decode(data, 1) } catch (err) { return } @@ -93,14 +94,14 @@ Multilevel.prototype.createRpcStream = function (opts, proxy) { return } - for (var i = 0; i < self._requests.length; i++) { - var req = self._requests.get(i) + for (let i = 0; i < self._requests.length; i++) { + const req = self._requests.get(i) if (!req) continue self._write(req) } - for (var j = 0; j < self._iterators.length; j++) { - var ite = self._iterators.get(j) + for (let j = 0; j < self._iterators.length; j++) { + const ite = self._iterators.get(j) if (!ite) continue ite.options = ite.iterator._options self._write(ite) @@ -108,14 +109,14 @@ Multilevel.prototype.createRpcStream = function (opts, proxy) { } function oniteratordata (res) { - var req = self._iterators.get(res.id) + const req = self._iterators.get(res.id) if (!req) return req.pending.push(res) if (req.callback) req.iterator.next(req.callback) } function oncallback (res) { - var req = self._requests.remove(res.id) + const req = self._requests.remove(res.id) if (req) req.callback(decodeError(res.error), decodeValue(res.value, req.valueAsBuffer)) } } @@ -135,13 +136,13 @@ Multilevel.prototype._flushMaybe = function () { } Multilevel.prototype._clearRequests = function (closing) { - for (var i = 0; i < this._requests.length; i++) { - var req = this._requests.remove(i) + for (let i = 0; i < this._requests.length; i++) { + const req = this._requests.remove(i) if (req) req.callback(new Error('Connection to leader lost')) } - for (var j = 0; j < this._iterators.length; j++) { - var ite = this._iterators.remove(j) + for (let j = 0; j < this._iterators.length; j++) { + const ite = this._iterators.remove(j) if (ite) { if (ite.callback && !closing) ite.callback(new Error('Connection to leader lost')) ite.iterator.end() @@ -160,7 +161,7 @@ Multilevel.prototype._serializeValue = function (value) { Multilevel.prototype._get = function (key, opts, cb) { if (this._db) return this._db._get(key, opts, cb) - var req = { + const req = { tag: 0, id: 0, key: key, @@ -175,7 +176,7 @@ Multilevel.prototype._get = function (key, opts, cb) { Multilevel.prototype._put = function (key, value, opts, cb) { if (this._db) return this._db._put(key, value, opts, cb) - var req = { + const req = { tag: 1, id: 0, key: key, @@ -190,7 +191,7 @@ Multilevel.prototype._put = function (key, value, opts, cb) { Multilevel.prototype._del = function (key, opts, cb) { if (this._db) return this._db._del(key, opts, cb) - var req = { + const req = { tag: 2, id: 0, key: key, @@ -204,7 +205,7 @@ Multilevel.prototype._del = function (key, opts, cb) { Multilevel.prototype._batch = function (batch, opts, cb) { if (this._db) return this._db._batch(batch, opts, cb) - var req = { + const req = { tag: 3, id: 0, ops: batch, @@ -217,8 +218,8 @@ Multilevel.prototype._batch = function (batch, opts, cb) { Multilevel.prototype._write = function (req) { if (this._requests.length + this._iterators.length === 1) ref(this._ref) - var enc = ENCODERS[req.tag] - var buf = Buffer.allocUnsafe(enc.encodingLength(req) + 1) + const enc = ENCODERS[req.tag] + const buf = Buffer.allocUnsafe(enc.encodingLength(req) + 1) buf[0] = req.tag enc.encode(req, buf, 1) this._encode.write(buf) @@ -250,7 +251,7 @@ function Iterator (parent, opts) { this._valueAsBuffer = opts.valueAsBuffer this._options = opts - var req = { + const req = { tag: 4, id: 0, batch: 32, @@ -279,7 +280,7 @@ Iterator.prototype.next = function (cb) { this._parent._write(this._req) } - var next = this._req.pending.shift() + const next = this._req.pending.shift() if (next.error) return cb(decodeError(next.error)) if (!next.key && !next.value) return cb() @@ -287,8 +288,8 @@ Iterator.prototype.next = function (cb) { this._options.gt = next.key if (this._options.limit > 0) this._options.limit-- - var key = decodeValue(next.key, this._keyAsBuffer) - var val = decodeValue(next.value, this._valueAsBuffer) + const key = decodeValue(next.key, this._keyAsBuffer) + const val = decodeValue(next.value, this._valueAsBuffer) return cb(undefined, key, val) } diff --git a/messages.js b/messages.js index dde5c24..a14c49f 100644 --- a/messages.js +++ b/messages.js @@ -6,53 +6,53 @@ /* eslint-disable camelcase */ // Remember to `npm install --save protocol-buffers-encodings` -var encodings = require('protocol-buffers-encodings') -var varint = encodings.varint -var skip = encodings.skip +const encodings = require('protocol-buffers-encodings') +const varint = encodings.varint +const skip = encodings.skip -var Get = exports.Get = { +const Get = exports.Get = { buffer: true, encodingLength: null, encode: null, decode: null } -var Put = exports.Put = { +const Put = exports.Put = { buffer: true, encodingLength: null, encode: null, decode: null } -var Delete = exports.Delete = { +const Delete = exports.Delete = { buffer: true, encodingLength: null, encode: null, decode: null } -var Batch = exports.Batch = { +const Batch = exports.Batch = { buffer: true, encodingLength: null, encode: null, decode: null } -var Iterator = exports.Iterator = { +const Iterator = exports.Iterator = { buffer: true, encodingLength: null, encode: null, decode: null } -var Callback = exports.Callback = { +const Callback = exports.Callback = { buffer: true, encodingLength: null, encode: null, decode: null } -var IteratorData = exports.IteratorData = { +const IteratorData = exports.IteratorData = { buffer: true, encodingLength: null, encode: null, @@ -68,7 +68,7 @@ defineCallback() defineIteratorData() function defineGet () { - var enc = [ + const enc = [ encodings.varint, encodings.bytes ] @@ -78,20 +78,18 @@ function defineGet () { Get.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (!defined(obj.key)) throw new Error("key is required") - var len = enc[1].encodingLength(obj.key) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.key) return length } function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -108,22 +106,22 @@ function defineGet () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, key: null } - var found0 = false - var found1 = false + let found0 = false + let found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -143,7 +141,7 @@ function defineGet () { } function definePut () { - var enc = [ + const enc = [ encodings.varint, encodings.bytes ] @@ -153,16 +151,13 @@ function definePut () { Put.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (!defined(obj.key)) throw new Error("key is required") - var len = enc[1].encodingLength(obj.key) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.key) if (defined(obj.value)) { - var len = enc[1].encodingLength(obj.value) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.value) } return length } @@ -170,7 +165,7 @@ function definePut () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -192,23 +187,23 @@ function definePut () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, key: null, value: null } - var found0 = false - var found1 = false + let found0 = false + let found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -232,7 +227,7 @@ function definePut () { } function defineDelete () { - var enc = [ + const enc = [ encodings.varint, encodings.bytes ] @@ -242,20 +237,18 @@ function defineDelete () { Delete.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (!defined(obj.key)) throw new Error("key is required") - var len = enc[1].encodingLength(obj.key) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.key) return length } function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -272,22 +265,22 @@ function defineDelete () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, key: null } - var found0 = false - var found1 = false + let found0 = false + let found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -307,7 +300,7 @@ function defineDelete () { } function defineBatch () { - var Operation = Batch.Operation = { + const Operation = Batch.Operation = { buffer: true, encodingLength: null, encode: null, @@ -317,7 +310,7 @@ function defineBatch () { defineOperation() function defineOperation () { - var enc = [ + const enc = [ encodings.string, encodings.bytes ] @@ -327,16 +320,13 @@ function defineBatch () { Operation.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.type)) throw new Error("type is required") - var len = enc[0].encodingLength(obj.type) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.type) if (!defined(obj.key)) throw new Error("key is required") - var len = enc[1].encodingLength(obj.key) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.key) if (defined(obj.value)) { - var len = enc[1].encodingLength(obj.value) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.value) } return length } @@ -344,7 +334,7 @@ function defineBatch () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.type)) throw new Error("type is required") buf[offset++] = 10 enc[0].encode(obj.type, buf, offset) @@ -366,23 +356,23 @@ function defineBatch () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { type: "", key: null, value: null } - var found0 = false - var found1 = false + let found0 = false + let found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.type = enc[0].decode(buf, offset) @@ -405,7 +395,7 @@ function defineBatch () { } } - var enc = [ + const enc = [ encodings.varint, Operation ] @@ -415,14 +405,13 @@ function defineBatch () { Batch.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (defined(obj.ops)) { - for (var i = 0; i < obj.ops.length; i++) { + for (let i = 0; i < obj.ops.length; i++) { if (!defined(obj.ops[i])) continue - var len = enc[1].encodingLength(obj.ops[i]) + const len = enc[1].encodingLength(obj.ops[i]) length += varint.encodingLength(len) length += 1 + len } @@ -433,13 +422,13 @@ function defineBatch () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) offset += enc[0].encode.bytes if (defined(obj.ops)) { - for (var i = 0; i < obj.ops.length; i++) { + for (let i = 0; i < obj.ops.length; i++) { if (!defined(obj.ops[i])) continue buf[offset++] = 18 varint.encode(enc[1].encodingLength(obj.ops[i]), buf, offset) @@ -456,21 +445,21 @@ function defineBatch () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, ops: [] } - var found0 = false + let found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -478,9 +467,8 @@ function defineBatch () { found0 = true break case 2: - var len = varint.decode(buf, offset) offset += varint.decode.bytes - obj.ops.push(enc[1].decode(buf, offset, offset + len)) + obj.ops.push(enc[1].decode(buf, offset, offset + varint.decode(buf, offset))) offset += enc[1].decode.bytes break default: @@ -491,7 +479,7 @@ function defineBatch () { } function defineIterator () { - var Options = Iterator.Options = { + const Options = Iterator.Options = { buffer: true, encodingLength: null, encode: null, @@ -501,7 +489,7 @@ function defineIterator () { defineOptions() function defineOptions () { - var enc = [ + const enc = [ encodings.bool, encodings.bytes, encodings.sint64 @@ -512,38 +500,30 @@ function defineIterator () { Options.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (defined(obj.keys)) { - var len = enc[0].encodingLength(obj.keys) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.keys) } if (defined(obj.values)) { - var len = enc[0].encodingLength(obj.values) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.values) } if (defined(obj.gt)) { - var len = enc[1].encodingLength(obj.gt) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.gt) } if (defined(obj.gte)) { - var len = enc[1].encodingLength(obj.gte) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.gte) } if (defined(obj.lt)) { - var len = enc[1].encodingLength(obj.lt) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.lt) } if (defined(obj.lte)) { - var len = enc[1].encodingLength(obj.lte) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.lte) } if (defined(obj.limit)) { - var len = enc[2].encodingLength(obj.limit) - length += 1 + len + length += 1 + enc[2].encodingLength(obj.limit) } if (defined(obj.reverse)) { - var len = enc[0].encodingLength(obj.reverse) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.reverse) } return length } @@ -551,7 +531,7 @@ function defineIterator () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (defined(obj.keys)) { buf[offset++] = 8 enc[0].encode(obj.keys, buf, offset) @@ -600,8 +580,8 @@ function defineIterator () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { keys: false, values: false, gt: null, @@ -616,9 +596,9 @@ function defineIterator () { decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.keys = enc[0].decode(buf, offset) @@ -659,7 +639,7 @@ function defineIterator () { } } - var enc = [ + const enc = [ encodings.varint, Options ] @@ -669,16 +649,14 @@ function defineIterator () { Iterator.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (defined(obj.batch)) { - var len = enc[0].encodingLength(obj.batch) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.batch) } if (defined(obj.options)) { - var len = enc[1].encodingLength(obj.options) + const len = enc[1].encodingLength(obj.options) length += varint.encodingLength(len) length += 1 + len } @@ -688,7 +666,7 @@ function defineIterator () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -713,22 +691,22 @@ function defineIterator () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, batch: 0, options: null } - var found0 = false + let found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -740,9 +718,8 @@ function defineIterator () { offset += enc[0].decode.bytes break case 3: - var len = varint.decode(buf, offset) offset += varint.decode.bytes - obj.options = enc[1].decode(buf, offset, offset + len) + obj.options = enc[1].decode(buf, offset, offset + varint.decode(buf, offset)) offset += enc[1].decode.bytes break default: @@ -753,7 +730,7 @@ function defineIterator () { } function defineCallback () { - var enc = [ + const enc = [ encodings.varint, encodings.string, encodings.bytes @@ -764,17 +741,14 @@ function defineCallback () { Callback.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (defined(obj.error)) { - var len = enc[1].encodingLength(obj.error) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.error) } if (defined(obj.value)) { - var len = enc[2].encodingLength(obj.value) - length += 1 + len + length += 1 + enc[2].encodingLength(obj.value) } return length } @@ -782,7 +756,7 @@ function defineCallback () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -805,22 +779,22 @@ function defineCallback () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, error: "", value: null } - var found0 = false + let found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -843,7 +817,7 @@ function defineCallback () { } function defineIteratorData () { - var enc = [ + const enc = [ encodings.varint, encodings.string, encodings.bytes @@ -854,21 +828,17 @@ function defineIteratorData () { IteratorData.decode = decode function encodingLength (obj) { - var length = 0 + let length = 0 if (!defined(obj.id)) throw new Error("id is required") - var len = enc[0].encodingLength(obj.id) - length += 1 + len + length += 1 + enc[0].encodingLength(obj.id) if (defined(obj.error)) { - var len = enc[1].encodingLength(obj.error) - length += 1 + len + length += 1 + enc[1].encodingLength(obj.error) } if (defined(obj.key)) { - var len = enc[2].encodingLength(obj.key) - length += 1 + len + length += 1 + enc[2].encodingLength(obj.key) } if (defined(obj.value)) { - var len = enc[2].encodingLength(obj.value) - length += 1 + len + length += 1 + enc[2].encodingLength(obj.value) } return length } @@ -876,7 +846,7 @@ function defineIteratorData () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - var oldOffset = offset + const oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -904,23 +874,23 @@ function defineIteratorData () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - var oldOffset = offset - var obj = { + const oldOffset = offset + const obj = { id: 0, error: "", key: null, value: null } - var found0 = false + let found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - var prefix = varint.decode(buf, offset) + const prefix = varint.decode(buf, offset) offset += varint.decode.bytes - var tag = prefix >> 3 + const tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) diff --git a/package.json b/package.json index 735c313..abc5e4e 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,9 @@ "level-community": "^3.0.0", "level-compose": "^0.0.2", "memdown": "^5.0.0", - "nyc": "^14.1.1", + "nyc": "^15.1.0", "protocol-buffers": "^4.0.2", - "standard": "^14.1.0", + "standard": "^16.0.3", "subleveldown": "^5.0.1", "tape": "^5.0.1" }, diff --git a/server.js b/server.js index ec74bc5..3fe0825 100644 --- a/server.js +++ b/server.js @@ -1,12 +1,12 @@ -var lpstream = require('length-prefixed-stream') -var eos = require('end-of-stream') -var duplexify = require('duplexify') -var reachdown = require('reachdown') -var messages = require('./messages') -var rangeOptions = 'gt gte lt lte'.split(' ') -var matchdown = require('./matchdown') - -var DECODERS = [ +const lpstream = require('length-prefixed-stream') +const eos = require('end-of-stream') +const duplexify = require('duplexify') +const reachdown = require('reachdown') +const messages = require('./messages') +const rangeOptions = 'gt gte lt lte'.split(' ') +const matchdown = require('./matchdown') + +const DECODERS = [ messages.Get, messages.Put, messages.Delete, @@ -17,14 +17,14 @@ var DECODERS = [ module.exports = function (db, opts) { if (!opts) opts = {} - var readonly = !!(opts.readonly) - var decode = lpstream.decode() - var encode = lpstream.encode() - var stream = duplexify(decode, encode) + const readonly = !!(opts.readonly) + const decode = lpstream.decode() + const encode = lpstream.encode() + const stream = duplexify(decode, encode) - var preput = opts.preput || function (key, val, cb) { cb(null) } - var predel = opts.predel || function (key, cb) { cb(null) } - var prebatch = opts.prebatch || function (ops, cb) { cb(null) } + const preput = opts.preput || function (key, val, cb) { cb(null) } + const predel = opts.predel || function (key, cb) { cb(null) } + const prebatch = opts.prebatch || function (ops, cb) { cb(null) } if (db.isOpen()) ready() else db.open(ready) @@ -32,24 +32,25 @@ module.exports = function (db, opts) { return stream function ready () { - var down = reachdown(db, matchdown, false) - var iterators = [] + const down = reachdown(db, matchdown, false) + const iterators = [] eos(stream, function () { while (iterators.length) { - var next = iterators.shift() + const next = iterators.shift() if (next) next.end() } }) decode.on('data', function (data) { if (!data.length) return - var tag = data[0] + const tag = data[0] if (tag >= DECODERS.length) return - var dec = DECODERS[tag] + const dec = DECODERS[tag] + let req try { - var req = dec.decode(data, 1) + req = dec.decode(data, 1) } catch (err) { return } @@ -74,8 +75,8 @@ module.exports = function (db, opts) { }) function callback (id, err, value) { - var msg = { id: id, error: err && err.message, value: value } - var buf = Buffer.allocUnsafe(messages.Callback.encodingLength(msg) + 1) + const msg = { id: id, error: err && err.message, value: value } + const buf = Buffer.allocUnsafe(messages.Callback.encodingLength(msg) + 1) buf[0] = 0 messages.Callback.encode(msg, buf, 1) encode.write(buf) @@ -122,7 +123,7 @@ module.exports = function (db, opts) { function oniterator (req) { while (iterators.length < req.id) iterators.push(null) - var prev = iterators[req.id] + let prev = iterators[req.id] if (!prev) prev = iterators[req.id] = new Iterator(down, req, encode) if (!req.batch) { @@ -137,7 +138,7 @@ module.exports = function (db, opts) { } function Iterator (down, req, encode) { - var self = this + const self = this this.batch = req.batch || 0 this._iterator = down.iterator(cleanRangeOptions(req.options)) @@ -159,7 +160,7 @@ function Iterator (down, req, encode) { self._data.key = key self._data.value = value self.batch-- - var buf = Buffer.allocUnsafe(messages.IteratorData.encodingLength(self._data) + 1) + const buf = Buffer.allocUnsafe(messages.IteratorData.encodingLength(self._data) + 1) buf[0] = 1 messages.IteratorData.encode(self._data, buf, 1) encode.write(buf) @@ -185,9 +186,9 @@ function noop () {} function cleanRangeOptions (options) { if (!options) return - var result = {} + const result = {} - for (var k in options) { + for (const k in options) { if (!hasOwnProperty.call(options, k)) continue if (!isRangeOption(k) || options[k] != null) { diff --git a/streams.js b/streams.js index 9b275ab..642b412 100644 --- a/streams.js +++ b/streams.js @@ -1,5 +1,5 @@ -var pbs = require('pbs') -var fs = require('fs') -var path = require('path') +const pbs = require('pbs') +const fs = require('fs') +const path = require('path') module.exports = pbs(fs.readFileSync(path.join(__dirname, 'schema.proto'))) diff --git a/test/abstract.js b/test/abstract.js index a6a5b96..b53cbc9 100644 --- a/test/abstract.js +++ b/test/abstract.js @@ -1,17 +1,17 @@ -var test = require('tape') -var memdown = require('memdown') -var levelup = require('levelup') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) -var multileveldown = require('..') -var suite = require('abstract-leveldown/test') +const test = require('tape') +const memdown = require('memdown') +const levelup = require('levelup') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) +const multileveldown = require('..') +const suite = require('abstract-leveldown/test') suite({ test: test, factory: function () { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) diff --git a/test/basic.js b/test/basic.js index 653447c..e7a9738 100644 --- a/test/basic.js +++ b/test/basic.js @@ -1,17 +1,17 @@ -var tape = require('tape') -var memdown = require('memdown') -var concat = require('concat-stream') -var levelup = require('levelup') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) -var multileveldown = require('../') +const tape = require('tape') +const memdown = require('memdown') +const concat = require('concat-stream') +const levelup = require('levelup') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) +const multileveldown = require('../') tape('get', function (t) { t.plan(7) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -36,9 +36,9 @@ tape('get', function (t) { }) tape('get with valueEncoding: json in constructor', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client({ valueEncoding: 'json' }) + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client({ valueEncoding: 'json' }) stream.pipe(client.createRpcStream()).pipe(stream) @@ -54,9 +54,9 @@ tape('get with valueEncoding: json in constructor', function (t) { tape('get with valueEncoding: json in get options', function (t) { t.plan(5) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -76,9 +76,9 @@ tape('get with valueEncoding: json in get options', function (t) { }) tape('put', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -95,9 +95,9 @@ tape('put', function (t) { tape('put with valueEncoding: json in constructor', function (t) { t.plan(5) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client({ valueEncoding: 'json' }) + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client({ valueEncoding: 'json' }) stream.pipe(client.createRpcStream()).pipe(stream) @@ -119,9 +119,9 @@ tape('put with valueEncoding: json in constructor', function (t) { tape('put with valueEncoding: json in put options', function (t) { t.plan(5) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -141,12 +141,12 @@ tape('put with valueEncoding: json in put options', function (t) { }) tape('readonly', function (t) { - var db = factory() + const db = factory() db.put('hello', 'verden') - var stream = multileveldown.server(db, { readonly: true }) - var client = multileveldown.client() + const stream = multileveldown.server(db, { readonly: true }) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -161,9 +161,9 @@ tape('readonly', function (t) { }) tape('del', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -181,9 +181,9 @@ tape('del', function (t) { }) tape('batch', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -202,15 +202,15 @@ tape('batch', function (t) { }) tape('read stream', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) client.batch([{ type: 'put', key: 'hello', value: 'world' }, { type: 'put', key: 'hej', value: 'verden' }], function (err) { t.error(err, 'no err') - var rs = client.createReadStream() + const rs = client.createReadStream() rs.pipe(concat(function (datas) { t.same(datas.length, 2) t.same(datas[0], { key: 'hej', value: 'verden' }) @@ -221,15 +221,15 @@ tape('read stream', function (t) { }) tape('read stream (gt)', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) client.batch([{ type: 'put', key: 'hello', value: 'world' }, { type: 'put', key: 'hej', value: 'verden' }], function (err) { t.error(err, 'no err') - var rs = client.createReadStream({ gt: 'hej' }) + const rs = client.createReadStream({ gt: 'hej' }) rs.pipe(concat(function (datas) { t.same(datas.length, 1) t.same(datas[0], { key: 'hello', value: 'world' }) diff --git a/test/concurrent.js b/test/concurrent.js index e3290c7..4724f98 100644 --- a/test/concurrent.js +++ b/test/concurrent.js @@ -1,26 +1,26 @@ -var tape = require('tape') -var memdown = require('memdown') -var levelup = require('levelup') -var concat = require('concat-stream') -var multileveldown = require('../') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) +const tape = require('tape') +const memdown = require('memdown') +const levelup = require('levelup') +const concat = require('concat-stream') +const multileveldown = require('../') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) tape('two concurrent iterators', function (t) { - var db = factory() - var server = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const server = multileveldown.server(db) + const client = multileveldown.client() server.pipe(client.connect()).pipe(server) - var batch = [] - for (var i = 0; i < 100; i++) batch.push({ type: 'put', key: 'key-' + i, value: 'value-' + i }) + const batch = [] + for (let i = 0; i < 100; i++) batch.push({ type: 'put', key: 'key-' + i, value: 'value-' + i }) client.batch(batch, function (err) { t.error(err) - var rs1 = client.createReadStream() - var rs2 = client.createReadStream() + const rs1 = client.createReadStream() + const rs2 = client.createReadStream() rs1.pipe(concat(function (list1) { t.same(list1.length, 100) diff --git a/test/encryptdown.js b/test/encryptdown.js index 795f19f..73bd568 100644 --- a/test/encryptdown.js +++ b/test/encryptdown.js @@ -1,13 +1,13 @@ -var tape = require('tape') -var memdown = require('memdown') -var concat = require('concat-stream') -var levelup = require('levelup') -var encode = require('encoding-down') -var encrypt = require('@adorsys/encrypt-down') -var factory = require('level-compose')(memdown, encrypt, encode, levelup) -var multileveldown = require('../') +const tape = require('tape') +const memdown = require('memdown') +const concat = require('concat-stream') +const levelup = require('levelup') +const encode = require('encoding-down') +const encrypt = require('@adorsys/encrypt-down') +const factory = require('level-compose')(memdown, encrypt, encode, levelup) +const multileveldown = require('../') -var jwk = { +const jwk = { kty: 'oct', alg: 'A256GCM', use: 'enc', @@ -21,9 +21,9 @@ var jwk = { tape('multileveldown server on encrypt-down', function (t) { t.plan(3) - var db = factory({ jwk }) - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory({ jwk }) + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -46,9 +46,9 @@ tape('multileveldown server on encrypt-down', function (t) { tape('multileveldown server on encrypt-down with encoding', function (t) { t.plan(3) - var db = factory({ jwk, valueEncoding: 'json' }) - var stream = multileveldown.server(db) - var client = multileveldown.client({ valueEncoding: 'json' }) + const db = factory({ jwk, valueEncoding: 'json' }) + const stream = multileveldown.server(db) + const client = multileveldown.client({ valueEncoding: 'json' }) stream.pipe(client.createRpcStream()).pipe(stream) diff --git a/test/retry.js b/test/retry.js index 8dee6df..9ea4b85 100644 --- a/test/retry.js +++ b/test/retry.js @@ -1,14 +1,14 @@ -var tape = require('tape') -var memdown = require('memdown') -var levelup = require('levelup') -var multileveldown = require('../') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) +const tape = require('tape') +const memdown = require('memdown') +const levelup = require('levelup') +const multileveldown = require('../') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) tape('retry get', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client({ retry: true }) + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client({ retry: true }) db.put('hello', 'world', function () { client.get('hello', function (err, value) { @@ -22,9 +22,9 @@ tape('retry get', function (t) { }) tape('no retry get', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client({ retry: false }) + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client({ retry: false }) client.open(function () { db.put('hello', 'world', function () { @@ -33,12 +33,12 @@ tape('no retry get', function (t) { t.end() }) - var rpc = client.createRpcStream() + const rpc = client.createRpcStream() stream.pipe(rpc).pipe(stream) rpc.destroy() setTimeout(function () { - var rpc = client.createRpcStream() + const rpc = client.createRpcStream() stream.pipe(rpc).pipe(stream) }, 100) }) @@ -46,9 +46,9 @@ tape('no retry get', function (t) { }) tape('retry get', function (t) { - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client({ retry: true }) + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client({ retry: true }) client.open(function () { db.put('hello', 'world', function () { @@ -58,12 +58,12 @@ tape('retry get', function (t) { t.end() }) - var rpc = client.createRpcStream() + const rpc = client.createRpcStream() stream.pipe(rpc).pipe(stream) rpc.destroy() setTimeout(function () { - var rpc = client.createRpcStream() + const rpc = client.createRpcStream() stream.pipe(rpc).pipe(stream) }, 100) }) @@ -71,8 +71,8 @@ tape('retry get', function (t) { }) tape('retry read stream', function (t) { - var db = factory() - var client = multileveldown.client({ retry: true }) + const db = factory() + const client = multileveldown.client({ retry: true }) client.open(function () { db.batch([{ @@ -88,8 +88,8 @@ tape('retry read stream', function (t) { key: 'hola', value: 'mundo' }], function () { - var rs = client.createReadStream() - var expected = [{ + const rs = client.createReadStream() + const expected = [{ key: 'hej', value: 'verden' }, { @@ -109,10 +109,10 @@ tape('retry read stream', function (t) { t.end() }) - var stream - var clientStream + let stream + let clientStream - var connect = function () { + const connect = function () { stream = multileveldown.server(db) clientStream = client.createRpcStream() @@ -126,8 +126,8 @@ tape('retry read stream', function (t) { }) tape('retry read stream and limit', function (t) { - var db = factory() - var client = multileveldown.client({ retry: true }) + const db = factory() + const client = multileveldown.client({ retry: true }) client.open(function () { db.batch([{ @@ -143,8 +143,8 @@ tape('retry read stream and limit', function (t) { key: 'hola', value: 'mundo' }], function () { - var rs = client.createReadStream({ limit: 2 }) - var expected = [{ + const rs = client.createReadStream({ limit: 2 }) + const expected = [{ key: 'hej', value: 'verden' }, { @@ -161,10 +161,10 @@ tape('retry read stream and limit', function (t) { t.end() }) - var stream - var clientStream + let stream + let clientStream - var connect = function () { + const connect = function () { stream = multileveldown.server(db) clientStream = client.createRpcStream() diff --git a/test/streams.js b/test/streams.js index e3290c7..4724f98 100644 --- a/test/streams.js +++ b/test/streams.js @@ -1,26 +1,26 @@ -var tape = require('tape') -var memdown = require('memdown') -var levelup = require('levelup') -var concat = require('concat-stream') -var multileveldown = require('../') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) +const tape = require('tape') +const memdown = require('memdown') +const levelup = require('levelup') +const concat = require('concat-stream') +const multileveldown = require('../') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) tape('two concurrent iterators', function (t) { - var db = factory() - var server = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const server = multileveldown.server(db) + const client = multileveldown.client() server.pipe(client.connect()).pipe(server) - var batch = [] - for (var i = 0; i < 100; i++) batch.push({ type: 'put', key: 'key-' + i, value: 'value-' + i }) + const batch = [] + for (let i = 0; i < 100; i++) batch.push({ type: 'put', key: 'key-' + i, value: 'value-' + i }) client.batch(batch, function (err) { t.error(err) - var rs1 = client.createReadStream() - var rs2 = client.createReadStream() + const rs1 = client.createReadStream() + const rs2 = client.createReadStream() rs1.pipe(concat(function (list1) { t.same(list1.length, 100) diff --git a/test/subleveldown.js b/test/subleveldown.js index e4cafe7..be1c381 100644 --- a/test/subleveldown.js +++ b/test/subleveldown.js @@ -1,20 +1,20 @@ -var tape = require('tape') -var memdown = require('memdown') -var concat = require('concat-stream') -var levelup = require('levelup') -var encode = require('encoding-down') -var factory = require('level-compose')(memdown, encode, levelup) -var sub = require('subleveldown') -var multileveldown = require('../') +const tape = require('tape') +const memdown = require('memdown') +const concat = require('concat-stream') +const levelup = require('levelup') +const encode = require('encoding-down') +const factory = require('level-compose')(memdown, encode, levelup) +const sub = require('subleveldown') +const multileveldown = require('../') tape('subleveldown on deferred multileveldown client', function (t) { t.plan(5) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() - var sub1 = sub(client, 'test', { valueEncoding: 'json' }) - var sub2 = sub(client, 'test') + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() + const sub1 = sub(client, 'test', { valueEncoding: 'json' }) + const sub2 = sub(client, 'test') t.is(client.isOpen(), false) stream.pipe(client.createRpcStream()).pipe(stream) @@ -39,17 +39,17 @@ tape('subleveldown on deferred multileveldown client', function (t) { tape('subleveldown on non-deferred multileveldown client', function (t) { t.plan(5) - var db = factory() - var stream = multileveldown.server(db) - var client = multileveldown.client() + const db = factory() + const stream = multileveldown.server(db) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) client.once('open', function () { t.is(client.isOpen(), true) - var sub1 = sub(client, 'test', { valueEncoding: 'json' }) - var sub2 = sub(client, 'test') + const sub1 = sub(client, 'test', { valueEncoding: 'json' }) + const sub2 = sub(client, 'test') sub1.put('hello', { test: 'world' }, function (err) { t.error(err, 'no err') @@ -72,11 +72,11 @@ tape('subleveldown on non-deferred multileveldown client', function (t) { tape('multileveldown server on deferred subleveldown', function (t) { t.plan(4) - var db = factory() - var sub1 = sub(db, 'test1') - var sub2 = sub(db, 'test2') - var stream = multileveldown.server(sub1) - var client = multileveldown.client() + const db = factory() + const sub1 = sub(db, 'test1') + const sub2 = sub(db, 'test2') + const stream = multileveldown.server(sub1) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -103,13 +103,13 @@ tape('multileveldown server on deferred subleveldown', function (t) { tape('multileveldown server on non-deferred subleveldown', function (t) { t.plan(4) - var db = factory() - var sub1 = sub(db, 'test1') - var sub2 = sub(db, 'test2') + const db = factory() + const sub1 = sub(db, 'test1') + const sub2 = sub(db, 'test2') sub1.once('open', function () { - var stream = multileveldown.server(sub1) - var client = multileveldown.client() + const stream = multileveldown.server(sub1) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) @@ -137,12 +137,12 @@ tape('multileveldown server on non-deferred subleveldown', function (t) { tape('multileveldown server on nested subleveldown', function (t) { t.plan(4) - var db = factory() - var sub1 = sub(db, 'test1') - var sub2 = sub(sub1, 'test2') - var sub3 = sub(db, 'test3') - var stream = multileveldown.server(sub2) - var client = multileveldown.client() + const db = factory() + const sub1 = sub(db, 'test1') + const sub2 = sub(sub1, 'test2') + const sub3 = sub(db, 'test3') + const stream = multileveldown.server(sub2) + const client = multileveldown.client() stream.pipe(client.createRpcStream()).pipe(stream) From 3cde1b2f73f334cdf9141bd9fe1765a8f1f67e64 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sun, 7 Mar 2021 22:10:19 +0100 Subject: [PATCH 2/2] fixup: ignore messages.js --- messages.js | 272 ++++++++++++++++++++++++++++----------------------- package.json | 7 +- 2 files changed, 157 insertions(+), 122 deletions(-) diff --git a/messages.js b/messages.js index a14c49f..dde5c24 100644 --- a/messages.js +++ b/messages.js @@ -6,53 +6,53 @@ /* eslint-disable camelcase */ // Remember to `npm install --save protocol-buffers-encodings` -const encodings = require('protocol-buffers-encodings') -const varint = encodings.varint -const skip = encodings.skip +var encodings = require('protocol-buffers-encodings') +var varint = encodings.varint +var skip = encodings.skip -const Get = exports.Get = { +var Get = exports.Get = { buffer: true, encodingLength: null, encode: null, decode: null } -const Put = exports.Put = { +var Put = exports.Put = { buffer: true, encodingLength: null, encode: null, decode: null } -const Delete = exports.Delete = { +var Delete = exports.Delete = { buffer: true, encodingLength: null, encode: null, decode: null } -const Batch = exports.Batch = { +var Batch = exports.Batch = { buffer: true, encodingLength: null, encode: null, decode: null } -const Iterator = exports.Iterator = { +var Iterator = exports.Iterator = { buffer: true, encodingLength: null, encode: null, decode: null } -const Callback = exports.Callback = { +var Callback = exports.Callback = { buffer: true, encodingLength: null, encode: null, decode: null } -const IteratorData = exports.IteratorData = { +var IteratorData = exports.IteratorData = { buffer: true, encodingLength: null, encode: null, @@ -68,7 +68,7 @@ defineCallback() defineIteratorData() function defineGet () { - const enc = [ + var enc = [ encodings.varint, encodings.bytes ] @@ -78,18 +78,20 @@ function defineGet () { Get.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (!defined(obj.key)) throw new Error("key is required") - length += 1 + enc[1].encodingLength(obj.key) + var len = enc[1].encodingLength(obj.key) + length += 1 + len return length } function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -106,22 +108,22 @@ function defineGet () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, key: null } - let found0 = false - let found1 = false + var found0 = false + var found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -141,7 +143,7 @@ function defineGet () { } function definePut () { - const enc = [ + var enc = [ encodings.varint, encodings.bytes ] @@ -151,13 +153,16 @@ function definePut () { Put.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (!defined(obj.key)) throw new Error("key is required") - length += 1 + enc[1].encodingLength(obj.key) + var len = enc[1].encodingLength(obj.key) + length += 1 + len if (defined(obj.value)) { - length += 1 + enc[1].encodingLength(obj.value) + var len = enc[1].encodingLength(obj.value) + length += 1 + len } return length } @@ -165,7 +170,7 @@ function definePut () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -187,23 +192,23 @@ function definePut () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, key: null, value: null } - let found0 = false - let found1 = false + var found0 = false + var found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -227,7 +232,7 @@ function definePut () { } function defineDelete () { - const enc = [ + var enc = [ encodings.varint, encodings.bytes ] @@ -237,18 +242,20 @@ function defineDelete () { Delete.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (!defined(obj.key)) throw new Error("key is required") - length += 1 + enc[1].encodingLength(obj.key) + var len = enc[1].encodingLength(obj.key) + length += 1 + len return length } function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -265,22 +272,22 @@ function defineDelete () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, key: null } - let found0 = false - let found1 = false + var found0 = false + var found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -300,7 +307,7 @@ function defineDelete () { } function defineBatch () { - const Operation = Batch.Operation = { + var Operation = Batch.Operation = { buffer: true, encodingLength: null, encode: null, @@ -310,7 +317,7 @@ function defineBatch () { defineOperation() function defineOperation () { - const enc = [ + var enc = [ encodings.string, encodings.bytes ] @@ -320,13 +327,16 @@ function defineBatch () { Operation.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.type)) throw new Error("type is required") - length += 1 + enc[0].encodingLength(obj.type) + var len = enc[0].encodingLength(obj.type) + length += 1 + len if (!defined(obj.key)) throw new Error("key is required") - length += 1 + enc[1].encodingLength(obj.key) + var len = enc[1].encodingLength(obj.key) + length += 1 + len if (defined(obj.value)) { - length += 1 + enc[1].encodingLength(obj.value) + var len = enc[1].encodingLength(obj.value) + length += 1 + len } return length } @@ -334,7 +344,7 @@ function defineBatch () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.type)) throw new Error("type is required") buf[offset++] = 10 enc[0].encode(obj.type, buf, offset) @@ -356,23 +366,23 @@ function defineBatch () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { type: "", key: null, value: null } - let found0 = false - let found1 = false + var found0 = false + var found1 = false while (true) { if (end <= offset) { if (!found0 || !found1) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.type = enc[0].decode(buf, offset) @@ -395,7 +405,7 @@ function defineBatch () { } } - const enc = [ + var enc = [ encodings.varint, Operation ] @@ -405,13 +415,14 @@ function defineBatch () { Batch.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (defined(obj.ops)) { - for (let i = 0; i < obj.ops.length; i++) { + for (var i = 0; i < obj.ops.length; i++) { if (!defined(obj.ops[i])) continue - const len = enc[1].encodingLength(obj.ops[i]) + var len = enc[1].encodingLength(obj.ops[i]) length += varint.encodingLength(len) length += 1 + len } @@ -422,13 +433,13 @@ function defineBatch () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) offset += enc[0].encode.bytes if (defined(obj.ops)) { - for (let i = 0; i < obj.ops.length; i++) { + for (var i = 0; i < obj.ops.length; i++) { if (!defined(obj.ops[i])) continue buf[offset++] = 18 varint.encode(enc[1].encodingLength(obj.ops[i]), buf, offset) @@ -445,21 +456,21 @@ function defineBatch () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, ops: [] } - let found0 = false + var found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -467,8 +478,9 @@ function defineBatch () { found0 = true break case 2: + var len = varint.decode(buf, offset) offset += varint.decode.bytes - obj.ops.push(enc[1].decode(buf, offset, offset + varint.decode(buf, offset))) + obj.ops.push(enc[1].decode(buf, offset, offset + len)) offset += enc[1].decode.bytes break default: @@ -479,7 +491,7 @@ function defineBatch () { } function defineIterator () { - const Options = Iterator.Options = { + var Options = Iterator.Options = { buffer: true, encodingLength: null, encode: null, @@ -489,7 +501,7 @@ function defineIterator () { defineOptions() function defineOptions () { - const enc = [ + var enc = [ encodings.bool, encodings.bytes, encodings.sint64 @@ -500,30 +512,38 @@ function defineIterator () { Options.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (defined(obj.keys)) { - length += 1 + enc[0].encodingLength(obj.keys) + var len = enc[0].encodingLength(obj.keys) + length += 1 + len } if (defined(obj.values)) { - length += 1 + enc[0].encodingLength(obj.values) + var len = enc[0].encodingLength(obj.values) + length += 1 + len } if (defined(obj.gt)) { - length += 1 + enc[1].encodingLength(obj.gt) + var len = enc[1].encodingLength(obj.gt) + length += 1 + len } if (defined(obj.gte)) { - length += 1 + enc[1].encodingLength(obj.gte) + var len = enc[1].encodingLength(obj.gte) + length += 1 + len } if (defined(obj.lt)) { - length += 1 + enc[1].encodingLength(obj.lt) + var len = enc[1].encodingLength(obj.lt) + length += 1 + len } if (defined(obj.lte)) { - length += 1 + enc[1].encodingLength(obj.lte) + var len = enc[1].encodingLength(obj.lte) + length += 1 + len } if (defined(obj.limit)) { - length += 1 + enc[2].encodingLength(obj.limit) + var len = enc[2].encodingLength(obj.limit) + length += 1 + len } if (defined(obj.reverse)) { - length += 1 + enc[0].encodingLength(obj.reverse) + var len = enc[0].encodingLength(obj.reverse) + length += 1 + len } return length } @@ -531,7 +551,7 @@ function defineIterator () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (defined(obj.keys)) { buf[offset++] = 8 enc[0].encode(obj.keys, buf, offset) @@ -580,8 +600,8 @@ function defineIterator () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { keys: false, values: false, gt: null, @@ -596,9 +616,9 @@ function defineIterator () { decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.keys = enc[0].decode(buf, offset) @@ -639,7 +659,7 @@ function defineIterator () { } } - const enc = [ + var enc = [ encodings.varint, Options ] @@ -649,14 +669,16 @@ function defineIterator () { Iterator.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (defined(obj.batch)) { - length += 1 + enc[0].encodingLength(obj.batch) + var len = enc[0].encodingLength(obj.batch) + length += 1 + len } if (defined(obj.options)) { - const len = enc[1].encodingLength(obj.options) + var len = enc[1].encodingLength(obj.options) length += varint.encodingLength(len) length += 1 + len } @@ -666,7 +688,7 @@ function defineIterator () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -691,22 +713,22 @@ function defineIterator () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, batch: 0, options: null } - let found0 = false + var found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -718,8 +740,9 @@ function defineIterator () { offset += enc[0].decode.bytes break case 3: + var len = varint.decode(buf, offset) offset += varint.decode.bytes - obj.options = enc[1].decode(buf, offset, offset + varint.decode(buf, offset)) + obj.options = enc[1].decode(buf, offset, offset + len) offset += enc[1].decode.bytes break default: @@ -730,7 +753,7 @@ function defineIterator () { } function defineCallback () { - const enc = [ + var enc = [ encodings.varint, encodings.string, encodings.bytes @@ -741,14 +764,17 @@ function defineCallback () { Callback.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (defined(obj.error)) { - length += 1 + enc[1].encodingLength(obj.error) + var len = enc[1].encodingLength(obj.error) + length += 1 + len } if (defined(obj.value)) { - length += 1 + enc[2].encodingLength(obj.value) + var len = enc[2].encodingLength(obj.value) + length += 1 + len } return length } @@ -756,7 +782,7 @@ function defineCallback () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -779,22 +805,22 @@ function defineCallback () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, error: "", value: null } - let found0 = false + var found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) @@ -817,7 +843,7 @@ function defineCallback () { } function defineIteratorData () { - const enc = [ + var enc = [ encodings.varint, encodings.string, encodings.bytes @@ -828,17 +854,21 @@ function defineIteratorData () { IteratorData.decode = decode function encodingLength (obj) { - let length = 0 + var length = 0 if (!defined(obj.id)) throw new Error("id is required") - length += 1 + enc[0].encodingLength(obj.id) + var len = enc[0].encodingLength(obj.id) + length += 1 + len if (defined(obj.error)) { - length += 1 + enc[1].encodingLength(obj.error) + var len = enc[1].encodingLength(obj.error) + length += 1 + len } if (defined(obj.key)) { - length += 1 + enc[2].encodingLength(obj.key) + var len = enc[2].encodingLength(obj.key) + length += 1 + len } if (defined(obj.value)) { - length += 1 + enc[2].encodingLength(obj.value) + var len = enc[2].encodingLength(obj.value) + length += 1 + len } return length } @@ -846,7 +876,7 @@ function defineIteratorData () { function encode (obj, buf, offset) { if (!offset) offset = 0 if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj)) - const oldOffset = offset + var oldOffset = offset if (!defined(obj.id)) throw new Error("id is required") buf[offset++] = 8 enc[0].encode(obj.id, buf, offset) @@ -874,23 +904,23 @@ function defineIteratorData () { if (!offset) offset = 0 if (!end) end = buf.length if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid") - const oldOffset = offset - const obj = { + var oldOffset = offset + var obj = { id: 0, error: "", key: null, value: null } - let found0 = false + var found0 = false while (true) { if (end <= offset) { if (!found0) throw new Error("Decoded message is not valid") decode.bytes = offset - oldOffset return obj } - const prefix = varint.decode(buf, offset) + var prefix = varint.decode(buf, offset) offset += varint.decode.bytes - const tag = prefix >> 3 + var tag = prefix >> 3 switch (tag) { case 1: obj.id = enc[0].decode(buf, offset) diff --git a/package.json b/package.json index abc5e4e..acc105f 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,11 @@ }, "homepage": "https://github.com/Level/multileveldown", "engines": { - "node": ">=8" + "node": ">=10" + }, + "standard": { + "ignore": [ + "messages.js" + ] } }