promise-duplex
v8.0.0
Published
Return promise for duplex stream
Downloads
27,509
Readme
promise-duplex
This module allows to convert
Duplex
stream
into its promisified version, which returns
Promise
object fulfilled when stream's events occurred.
The module combines
promise-readable
and
promise-
in one.
Requirements
This module requires Node >= 16.
Installation
npm install promise-duplex
Usage
import PromiseDuplex from "promise-duplex"
constructor
const promiseDuplex = new PromiseDuplex(stream)
PromiseDuplex
object requires Duplex
object to work.
Example:
import net from "node:net"
import PromiseDuplex from "promise-duplex"
const stream = new net.Socket()
const promiseDuplex = new PromiseDuplex(stream)
stream
const stream = promiseDuplex.stream
Original stream object.
Example:
console.log(promiseDuplex.stream.localAddress)
read
const chunk = await promiseDuplex.read(chunkSize)
Check
PromiseReadable.read
for details.
readAll
const content = await promiseDuplex.readAll()
Check
PromiseReadable.readAll
for details.
iterate
for await (const chunk of promiseDuplex.iterate(chunkSize)) {
}
Check
PromiseReadable.iterate
for details.
Symbol.asyncIterator
for await (const chunk of promiseDuplex.iterate(chunkSize)) {
}
Check
PromiseReadable[Symbol.asyncIterator]
for details.
setEncoding
promiseDuplex = await promiseDuplex.setEncoding(encoding)
Check
PromiseReadable.setEncoding
for details.
write
await promiseDuplex.write(chunk)
Check
PromiseWritable.write
for details.
writeAll
await promiseDuplex.writeAll(content, chunkSize)
Check
PromiseWritable.writeAll
for details.
end
await promiseDuplex.end()
Check
PromiseWritable.once
for details.
once
const result = await promiseDuplex.once(event)
Check
PromiseReadable.once
and
PromiseWritable.once
for details.
destroy
promiseDuplex = promiseDuplex.destroy()
This method calls destroy
method on stream and cleans up all own handlers.
The method returns this object.
See also
PromiseReadable
,
PromiseWritable
,
PromiseSocket
,
PromisePiping
.
License
Copyright (c) 2017-2024 Piotr Roszatycki [email protected]