stream-consumers

1.0.2 • Public • Published

Stream Consumers

node:stream/consumers for Deno, Browsers and older nodejs versions

(targeting NodeJS v16.7.0+ only? use node:stream/consumers instead)

Install

This package is ESM only: Node 12.20+ is needed to use it and it must be imported instead of required.
npm install stream-consumers

Use

The utility consumer functions provide common options for consuming streams.

They are accessed using:

import { arrayBuffer, blob, json, text } from 'stream-consumers'

streamConsumers.arrayBuffer(stream)

  • stream {ReadableStream|stream.Readable|AsyncIterator}
  • Returns: {Promise} Fulfills with an ArrayBuffer containing the full contents of the stream.

streamConsumers.blob(stream)

  • stream {ReadableStream|stream.Readable|AsyncIterator}
  • Returns: {Promise} Fulfills with a {Blob} containing the full contents of the stream.

streamConsumers.json(stream)

  • stream {ReadableStream|stream.Readable|AsyncIterator}
  • Returns: {Promise} Fulfills with the contents of the stream parsed as a UTF-8 encoded string that is then passed through JSON.parse().

streamConsumers.text(stream)

  • stream {ReadableStream|stream.Readable|AsyncIterator}
  • Returns: {Promise} Fulfills with the contents of the stream parsed as a UTF-8 encoded string.

streamConsumers.buffer(stream) ⚠️ Not supported

Use arrayBuffer(stream).then(Buffer.from) instead if you realy want a Buffer.
(you should be using uint8array instead for better Browser/Deno bundles.

Alternative native methods

Response can be a grate hack to abuse it's feature to convert mostly anything else without the need for this library. new Response(new ReadableStream({...})).json()

But this can't work with async iterator or node:streams that's when you should be using this utility stream consumers that all accepts async iterators.

Package Sidebar

Install

npm i stream-consumers

Weekly Downloads

341

Version

1.0.2

License

MIT

Unpacked Size

13.5 kB

Total Files

9

Last publish

Collaborators

  • endless