1.0.4 • Published 5 years ago

async-iterate-stream v1.0.4

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

async-iterate-stream

Turns a nodejs stream.Readable into an Iterable or AsyncIterable so that it can be iterated in an async function. Stream back-pressure is maintained duration iteration: the readable source's data events are never dropped and back-pressure is applied to stream if iteration can not keep up.

Usage

There are two ways to use this. The simple way is the bleeding edge way (https://github.com/tc39/proposal-async-iteration):

import {asyncIterateStream} from "async-iterate-stream/asyncIterateStream";

let src = fs.createReadableStream("...");  
for await (const chunk of asyncIterateStream(src, false)) {
  console.log(chunk.toString());
}

Alternatively, the non bleeding edge way is also a bit more verbose:

import {iterateStream} from "async-iterate-stream/iterateStream";

let src = fs.createReadableStream("...");  
for (const p of iterateStream(src, false)) {
  const chunk = await p;
  // it's possible that stream ended while waiting for chunk, in such case chunk is undefined, 
  if (chunk !== undefined)
    console.log(chunk.toString());
}
1.0.4

5 years ago

1.0.3

6 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago