
Product
Go Support Is Now Generally Available
Socket's Go support is now generally available, bringing automatic scanning and deep code analysis to all users with Go projects.
promise-readable
Advanced tools
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 an async iterator so it is possible to use it
with for await...of
statement.
This module requires Node >= 16.
npm install promise-readable
Additionally for Typescript:
npm install -D @types/node
import PromiseReadable from "promise-readable"
const promiseReadable = new PromiseReadable(stream)
PromiseReadable
object requires Readable
object to work.
Example:
import fs from "node:fs"
import PromiseReadable from "promise-readable"
const stream = fs.createReadStream("/etc/hosts")
const promiseReadable = new PromiseReadable(stream)
const stream = promiseReadable.stream
Original stream object.
Example:
console.log(promiseReadable.stream.flags)
const chunk = await promiseReadable.read(chunkSize)
This method returns Promise
which is fulfilled when the stream can return
one chunk (by read
method or data
event) or the stream is ended (end
or
close
events).
Example:
const chunk = await promiseReadable.read(1024)
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.read()); ) {
console.log(chunk.length)
}
console.log("stream is ended")
const content = await promiseReadable.readAll()
This method returns Promise
which is fulfilled when the stream is ended or
closed. It is resolved to undefined
value if the stream is already ended or
closed.
The content from the stream is buffered and then Promise
returns this
concatenated content.
promiseReadable = promiseReadable.setEncoding(encoding)
By default read
and readAll
methods return Buffer
objects.
This method sets the character encoding for data read from the stream. It
might be used if the original stream does not provide encoding
option.
The method returns this object.
Example:
const asBuffer = await promiseReadable.read()
promiseReadable.setEncoding("utf8")
const asString = await promiseReadable.read()
const result = await promiseReadable.once(event)
This method returns Promise
which is fulfilled when the stream emits
event
. The result of this event is returned or `undefined`` value if the
stream has already ended.
The promise will be rejected on error.
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")
await promiseReadable.once("error") // throws error, undefined if ended
for await (const chunk of promiseReadable.iterate(chunkSize)) {
}
This method returns an async iterator which returns the content of the stream
chunk-by-chunk with a defined chunkSize
.
for await (const chunk of promiseReadable) {
}
The PromiseReadable
object is an async iterator that returns the content of
the stream chunk-by-chunk with the default chunkSize
.
promiseReadable = promiseReadable.destroy()
This method calls destroy
method on stream and cleans up all own handlers.
The method returns this object.
PromiseWritable
,
PromiseDuplex
,
PromiseSocket
,
PromisePiping
.
Copyright (c) 2017-2024 Piotr Roszatycki mailto:piotr.roszatycki@gmail.com
v8.0.1 2024-06-21
destroy
method.FAQs
Return promise for readable stream
We found that promise-readable demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Go support is now generally available, bringing automatic scanning and deep code analysis to all users with Go projects.
Security News
vlt adds real-time security selectors powered by Socket, enabling developers to query and analyze package risks directly in their dependency graph.
Security News
CISA extended MITRE’s CVE contract by 11 months, avoiding a shutdown but leaving long-term governance and coordination issues unresolved.