npm.io
8.0.0 • Published 2 years ago

promise-writable

Licence
MIT
Version
8.0.0
Deps
0
Size
26 kB
Vulns
0
Weekly
0

promise-writable

GitHub CI Trunk Check Coverage Status npm

This module allows conversion Writable stream into its promisified version, which returns Promise object fulfilled when open, close, pipe, unpipe, finish or error events occurred.

Requirements

This module requires Node >= 16.

Installation

npm install promise-writable

Additionally for Typescript:

npm install -D @types/node

Usage

import PromiseWritable from "promise-writable"
constructor
const promiseWritable = new PromiseWritable(stream)

PromiseWritable object requires Writable object to work.

Example:

import PromiseWritable from "promise-writable"
import fs from "node:fs"

const stream = fs.createWriteStream("/tmp/test.txt")
const promiseWritable = new PromiseWritable(stream)
stream
const stream = promiseWritable.stream

Original stream object.

Example:

console.log(promiseWritable.stream.flags)
write
const written = await promiseWritable.write(chunk)

This method returns Promise which is fulfilled when the stream accepted a chunk (write method returned that stream is still writable or drain event occured) or stream is ended (finish event).

Promise resolves to number that counts written bytes.

Example:

const written = await promiseWritable.write(new Buffer("foo"))
writeAll
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:

const total = await promiseWritable.writeAll(new Buffer("foobarbaz"), 3)
once
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:

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
end
await promiseWritable.end()

This method ends the stream and returns Promise which is fulfilled when stream is finished. No value is returned.

destroy
promiseWritable = promiseWritable.destroy()

This method calls destroy method on stream and cleans up all own handlers.

The method returns this object.

See also

PromiseReadable, PromiseDuplex, PromiseSocket, PromisePiping.

License

Copyright (c) 2017-2024 Piotr Roszatycki mailto:piotr.roszatycki@gmail.com

MIT

Keywords