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.
Requirements
This module requires Node >= 4.
Installation
npm install promise-readable
Usage
constructor
const promiseReadable = new PromiseReadable(stream)
PromiseReadable
object requires Readable
object to work.
Example:
const PromiseReadable = require('promise-readable')
const stream = require('fs').createReadStream('/etc/hosts')
const promiseReadable = new PromiseReadable(stream)
stream
Original stream is available with stream
property.
Example:
console.log(promiseReadable.stream.flags)
read
const chunk = await promiseReadable.read([chunkSize])
This method returns Promise
which is fulfilled when stream can return one
chunk (by read
method or data
event) or stream is ended (end
event).
If stream2 API is available then additional argument size
is accepted.
Example:
const chunk = await promiseReadable.read(1024)
Promise returns chunk data if something has been read or null
value if it is
an end of the stream.
Example:
for (let chunk; (chunk = await promiseReadable.read()) !== null;) {
console.log(chunk.length)
}
console.log('stream is ended')
readAll
const content = await promiseReadable.readAll()
This method returns Promise
which is fulfilled when stream is ended. The
content from the stream is buffered and then Promise returns this concatenated
content.
once
const result = await promiseReadable.once(event)
This method returns Promise
which is fulfilled when stream emits event
. The
result of this event is returned or null
value if stream is already ended.
Example:
const fd = await promiseReadable.once('open')
promiseReadable.stream.pipe(process.stdout)
await promiseReadable.once('close')
promiseReadable.stream.on('data', chunk => console.log(chunk.length))
await promiseReadable.once('end')
Promise
This module uses any-promise and
any ES6 Promise library or polyfill is supported.
Ie. bluebird can be used as Promise
library for this module, if it is registered before.
require('any-promise/register/bluebird')
const PromiseReadable = require('promise-readable')
License
Copyright (c) 2017 Piotr Roszatycki piotr.roszatycki@gmail.com
MIT