t-readable
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

Build Status NPM version npm downloads

t-readable

Split one readable stream into multiple readable streams.

Installation

Using npm:

npm install t-readable

or yarn:

yan add t-readable

Usage

const { tee } = require('t-readable');
const got = require('got');
 
const url = 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg';
 
/**
 * Counts the number of bytes in the givent stream
 * @param readable {stream.Readable} - Readable stream
 * @return {Promise<number>} - Number of bytes until the end of stream is reached
 */
async function countBytes(readable) {
  let bytesRead = 0;
 
  return new Promise((resolve, reject) => {
    readable.on('data', chunk => {
      bytesRead += chunk.length;
    });
    readable.on('end', () => {
      resolve(bytesRead);
    });
    readable.on('error', error => {
      reject(error);
    });
  });
}
 
(async () => {
  const stream = got.stream(url); // stream is an instance of class stream.Readable
 
  const teedStreams = tee(stream);
  
  // Count the number of bytes received in each teed stream
  const counts = await Promise.all(teedStreams.map(readable => countBytes(readable)));
  console.log('Counts: ' + counts.join('')); // Counts: 27661, 27661
})();

Package Sidebar

Install

npm i t-readable

Weekly Downloads

63

Version

0.1.0

License

MIT

Unpacked Size

4.39 kB

Total Files

4

Last publish

Collaborators

  • borewit