Return promise for writable stream
npm install promise-writable




This module allows conversion Writable stream into its promisified version,
which returnsPromise
object fulfilled when open,close,pipe,unpipe,finish orerror events
occurred.
This module requires Node >= 16.
``shell`
npm install promise-writable
_Additionally for Typescript:_
`shell`
npm install -D @types/node
`js`
import PromiseWritable from "promise-writable"
`js`
const promiseWritable = new PromiseWritable(stream)
PromiseWritable object requires Writable object to work.
_Example:_
`js
import PromiseWritable from "promise-writable"
import fs from "node:fs"
const stream = fs.createWriteStream("/tmp/test.txt")
const promiseWritable = new PromiseWritable(stream)
`
`js`
const stream = promiseWritable.stream
Original stream object.
_Example:_
`js`
console.log(promiseWritable.stream.flags)
`js`
const written = await promiseWritable.write(chunk)
This method returns Promise which is fulfilled when the stream accepted awrite
chunk ( method returned that stream is still writable or drain eventfinish
occured) or stream is ended ( event).
Promise resolves to number that counts written bytes.
_Example:_
`js`
const written = await promiseWritable.write(new Buffer("foo"))
`js`
const total = await promiseWritable.writeAll(content, chunkSize)
This method returns Promise which is fulfilled when the stream accepts
content. This method writes the content chunk by chunk. The default chunk
size is 64 KiB.
Promise resolves to a number that counts written bytes.
_Example:_
`js`
const total = await promiseWritable.writeAll(new Buffer("foobarbaz"), 3)
`js`
await promiseWritable.once(event)
This method returns Promise which is fulfilled when stream emits event. The
result of this event is returned.
Promise resolves to undefined value if the stream is already closed or
destroyed.
_Example:_
`js
const fd = await promiseWritable.once("open")
process.stdin(promiseWritable.stream)
await promiseWritable.once("close")
const promise = promiseWritable.once("pipe")
process.stdin.pipe(promiseWritable.stream)
const src = await promise
const promise = promiseWritable.once("unpipe")
process.stdin.unpipe(promiseWritable.stream)
const src = await promise
`
`js`
await promiseWritable.end()
This method ends the stream and returns Promise which is fulfilled when stream
is finished. No value is returned.
`js`
promiseWritable = promiseWritable.destroy()
This method calls destroy method on stream and cleans up all own handlers.
The method returns this object.
PromiseReadable,
PromiseDuplex,
PromiseSocket,
PromisePiping`.
Copyright (c) 2017-2024 Piotr Roszatycki