This module allows to convert
Writable
stream into its promisified version, which returns
Promise
object fulfilled when open
,
close
,
pipe
,
unpipe
,
finish
or
error
events
occurred.
This module requires Node >= 6.
npm install promise-writable
Additionally for Typescript:
npm install -D @types/node
const {PromiseWritable} = require("promise-writable")
Typescript:
import PromiseWritable from "promise-writable"
// or
import {PromiseWritable} from "promise-writable"
const promiseWritable = new PromiseWritable(stream)
PromiseWritable
object requires Writable
object to work.
Example:
const {PromiseWritable} = require("promise-writable")
const fs = require("fs")
const stream = fs.createWriteStream("/tmp/test.txt")
const promiseWritable = new PromiseWritable(stream)
Typescript:
import PromiseWritable from "promise-writable"
import fs from "fs"
const stream = fs.createWriteStream("/tmp/test.txt")
const promiseWritable = new PromiseWritable(stream)
const stream = promiseWritable.stream
Original stream object.
Example:
console.log(promiseWritable.stream.flags)
const written = await promiseWritable.write(chunk)
This method returns Promise
which is fulfilled when 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 of written bytes.
Example:
const written = await promiseWritable.write(new Buffer("foo"))
const total = await promiseWritable.writeAll(content, chunkSize)
This method returns Promise
which is fulfilled when stream accepted a
content. This method writes the content chunk by chunk. The default chunk size
is 64 KiB.
Promise resolves to number of written bytes.
Example:
const total = await promiseWritable.writeAll(new Buffer("foobarbaz"), 3)
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 stream is already closed or destoyed.
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
await promiseWritable.end()
This method ends the stream and returns Promise
which is fulfilled when stream
is finished. No value is returned.
promiseWritable.destroy()
This method calls destroy method on stream and cleans up all own handlers.
PromiseReadable
,
PromiseDuplex
,
PromiseSocket
,
PromisePiping
.
Copyright (c) 2017-2019 Piotr Roszatycki mailto:[email protected]