1. stream-consumers
a user-land copy of the node:stream/consumers library from Node.js
stream-consumers
Package: stream-consumers
Created by: jimmywarting
Last modified: Wed, 18 May 2022 20:02:41 GMT
Version: 1.0.2
License: MIT
Downloads: 1,459
Repository: https://github.com/jimmywarting/stream-consumers

Install

npm install stream-consumers
yarn add stream-consumers

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.

Dependencies

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code