1. stream-source
Read binary streams in chunks, on demand, with promises.
stream-source
Package: stream-source
Created by: mbostock
Last modified: Mon, 27 Jun 2022 00:49:46 GMT
Version: 0.3.5
License: BSD-3-Clause
Downloads: 495,518
Repository: https://github.com/mbostock/stream-source

Install

npm install stream-source
yarn add stream-source

stream-source

A readable stream reader implementation on top of a Node readable stream. This library allows you to write code that takes a source as input, and can work with either native readable streams or Node streams. For example:

 var stream = require("stream-source");

function read(source) {
  return source.slice(40).then(value => {
    if (value == null) return;
    process.stdout.write(value);
    return read(source);
  });
}

read(stream(process.stdin))
  .catch(error => console.error(error.stack));

API Reference

# stream(stream) <>

# stream(reader)

In Node, returns a sliceable source for the specified Node readable stream. In a browser, if the specified reader exposes a reader.read method, it is assumed to be a readable stream reader, and the specified reader is returned as-is. Otherwise, the specified reader is assumed to be a readable stream, and the reader returned by stream.getReader is returned.

# source.slice(length) <>

Returns a Promise for the next chunk of data from the underlying stream, yielding a Uint8Array (a Buffer) of length bytes, or the remaining bytes of the underlying stream if the underlying stream has more than zero but fewer than length bytes remaining, or null when no bytes remain in the stream.

# source.read() <>

Returns a Promise for the next chunk of data from the underlying stream. The yielded result is an object with the following properties:

  • value - a Uint8Array (a Buffer), or undefined if the stream ended
  • done - a boolean which is true if the stream ended

# source.cancel() <>

Returns a Promise which is resolved when the underlying stream has been destroyed.

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