Skip to content

Commit 308bde7

Browse files
vweeversronag
andauthored
Replace duplexify and friends with readable-stream v4 (#7)
Co-authored-by: Robert Nagy <ronagy@icloud.com>
1 parent 9606554 commit 308bde7

File tree

3 files changed

+18
-19
lines changed

3 files changed

+18
-19
lines changed

guest.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
'use strict'
22

3-
const duplexify = require('duplexify')
43
const { AbstractLevel, AbstractIterator } = require('abstract-level')
5-
const eos = require('end-of-stream')
6-
const lpstream = require('length-prefixed-stream')
4+
const lpstream = require('@vweevers/length-prefixed-stream')
75
const ModuleError = require('module-error')
86
const { input, output } = require('./tags')
7+
const { Duplex, pipeline, finished } = require('readable-stream')
98

109
const kExplicitClose = Symbol('explicitClose')
1110
const kAbortRequests = Symbol('abortRequests')
@@ -108,10 +107,8 @@ class ManyLevelGuest extends AbstractLevel {
108107
self[kFlushed]()
109108
})
110109

111-
const proxy = duplexify()
112-
proxy.setWritable(decode)
113-
proxy.setReadable(encode)
114-
eos(proxy, cleanup)
110+
const proxy = Duplex.from({ writable: decode, readable: encode })
111+
finished(proxy, cleanup)
115112
this[kRpcStream] = proxy
116113
return proxy
117114

@@ -312,7 +309,7 @@ class ManyLevelGuest extends AbstractLevel {
312309
this[kAbortRequests]('Aborted on database close()', 'LEVEL_DATABASE_NOT_OPEN')
313310

314311
if (this[kRpcStream]) {
315-
eos(this[kRpcStream], () => {
312+
finished(this[kRpcStream], () => {
316313
this[kRpcStream] = null
317314
this._close(cb)
318315
})
@@ -330,7 +327,12 @@ class ManyLevelGuest extends AbstractLevel {
330327
// For tests only so does not need error handling
331328
this[kExplicitClose] = false
332329
const remote = this[kRemote]()
333-
remote.pipe(this.connect()).pipe(remote)
330+
pipeline(
331+
remote,
332+
this.connect(),
333+
remote,
334+
() => {}
335+
)
334336
} else if (this[kExplicitClose]) {
335337
throw new ModuleError('Cannot reopen many-level database after close()', {
336338
code: 'LEVEL_NOT_SUPPORTED'

host.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
'use strict'
22

3-
const lpstream = require('length-prefixed-stream')
3+
const lpstream = require('@vweevers/length-prefixed-stream')
44
const ModuleError = require('module-error')
5-
const eos = require('end-of-stream')
6-
const duplexify = require('duplexify')
5+
const { Duplex, finished } = require('readable-stream')
76
const { input, output } = require('./tags')
87

98
const rangeOptions = new Set(['gt', 'gte', 'lt', 'lte'])
@@ -60,7 +59,7 @@ function createRpcStream (db, options, streamOptions) {
6059
const readonly = options.readonly
6160
const decode = lpstream.decode()
6261
const encode = lpstream.encode()
63-
const stream = duplexify(decode, encode)
62+
const stream = Duplex.from({ writable: decode, readable: encode })
6463

6564
const preput = options.preput
6665
const predel = options.predel
@@ -85,7 +84,7 @@ function createRpcStream (db, options, streamOptions) {
8584

8685
const iterators = new Map()
8786

88-
eos(stream, function () {
87+
finished(stream, function () {
8988
for (const iterator of iterators.values()) {
9089
iterator.close()
9190
}

package.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,11 @@
2525
"UPGRADING.md"
2626
],
2727
"dependencies": {
28+
"@vweevers/length-prefixed-stream": "^1.0.0",
2829
"abstract-level": "^1.0.3",
29-
"duplexify": "^4.1.1",
30-
"end-of-stream": "^1.1.0",
31-
"length-prefixed-stream": "^2.0.0",
3230
"module-error": "^1.0.2",
33-
"protocol-buffers-encodings": "^1.1.0"
31+
"protocol-buffers-encodings": "^1.1.0",
32+
"readable-stream": "^4.0.0"
3433
},
3534
"devDependencies": {
3635
"@types/readable-stream": "^2.3.13",
@@ -43,7 +42,6 @@
4342
"memory-level": "^1.0.0",
4443
"nyc": "^15.1.0",
4544
"protocol-buffers": "^5.0.0",
46-
"readable-stream": "^3.6.0",
4745
"standard": "^16.0.3",
4846
"tape": "^5.0.1",
4947
"ts-standard": "^11.0.0",

0 commit comments

Comments
 (0)