stream-to-async-iterator
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Stream To Async Iterator npm version build

Overview

stream-to-async-iterator provides a wrapper that implements Symbol.asyncIterator. This will allow streams to be usable as async iterables that can be used in for-await-of loops.

Supports node.js 12 and up.

Installation

With NPM:

npm install stream-to-async-iterator

With Yarn:

yarn add stream-to-async-iterator

The included examples use async/await syntax for for-of loops. This assumes you are in an environment that natively supports this new syntax, or that you use a tool such as Babel. In addition, for async iterators to work properly, the Symbol.asyncIterator symbol must be defined. Core-js can help with that.

Usage

Import the StreamToAsyncIterator class and pass the stream to its constructor. The iterator instance can be directly used in for-of contexts.

If the stream is in object mode, each iteration will produce the next object. See the node documentation for more information.

#!/usr/bin/env node
"use strict";
const { Readable } = require("stream");
const S2A = require("../").default;

(async function () {
    const readStream = Readable.from([1, 2, 3]);
    for await (const chunk of new S2A(readStream)) {
        console.dir({ chunk });
    }
})();

Outputs:

{ chunk: 1 }
{ chunk: 2 }
{ chunk: 3 }

References

Package Sidebar

Install

npm i stream-to-async-iterator

Weekly Downloads

11,086

Version

1.0.0

License

MIT

Unpacked Size

14.1 kB

Total Files

5

Last publish

Collaborators

  • basicdays