promise-readable
This module allows to convert
Readable
stream into its promisified version, which returns
Promise
object fulfilled when open
,
data
,
close
,
end
or
error
events
occurred.
The promisified stream provides async iterator so it is possible to use it with
for await...of
statement.
Requirements
This module requires Node >= 6.
Installation
npm install promise-readable
Additionally for Typescript:
npm install -D @types/node
Usage
const PromiseReadable =
Typescript:
// or
constructor
const promiseReadable = stream
PromiseReadable
object requires Readable
object to work.
Example:
const fs = const PromiseReadable = const stream = fsconst promiseReadable = stream
Typescript:
stream
const stream = promiseReadablestream
Original stream object.
Example:
console
read
const chunk = await promiseReadable
This method returns Promise
which is fulfilled when stream can return one
chunk (by read
method or data
event) or stream is ended (end
or close
events).
Example:
const chunk = await promiseReadable
Promise returns chunk data if something has been read or undefined
value if
it is an end of the stream.
Example:
for let chunk; chunk = await promiseReadable; consoleconsole
readAll
const content = await promiseReadable
This method returns Promise
which is fulfilled when stream is ended or
closed. It is resolved to undefined
value if stream is already ended or
closed.
The content from the stream is buffered and then Promise
returns this
concatenated content.
setEncoding
promiseReadable = promiseReadable
By default read
and readAll
methods returns Buffer
objects.
This method sets the character encoding for data read from the stream. It might
be used if original stream does not provide encoding
option.
The method returns this object.
Example:
const asBuffer = await promiseReadable promiseReadableconst asString = await promiseReadable
once
const result = await promiseReadable
This method returns Promise
which is fulfilled when stream emits event
. The
result of this event is returned or undefined
value if stream is already
ended.
The promise will reject on error.
Example:
const fd = await promiseReadablepromiseReadablestream await promiseReadable promiseReadablestreamawait promiseReadable await promiseReadable // throws error, undefined if ended
iterate
for await const chunk of promiseReadable
This method returns async iterator which returns a content of the stream
chunk-by-chunk with defined chunkSize
.
Symbol.asyncIterator
for {}
The PromiseReadable
object is an async iterator which returns a content of
the stream chunk-by-chunk with the default chunkSize
.
destroy
promiseReadable
This method calls destroy
method on stream and cleans up all own handlers.
See also
PromiseWritable
,
PromiseDuplex
,
PromiseSocket
,
PromisePiping
.
License
Copyright (c) 2017-2019 Piotr Roszatycki mailto:piotr.roszatycki@gmail.com