Noiseless Praying Mantis

    @async-generators/iterable
    TypeScript icon, indicating that this package has built-in type declarations

    0.5.0 • Public • Published

    iterable

    logo

    wrap an async/sync Iterable as async Iterable.

    NPM version Travis Status Travis Status

    Usage

    package requires a system that supports async-iteration, either natively or via down-compiling

    Install

    npm install @async-generators/iterable --save
    yarn add @async-generators/iterable
    

    This package's main entry points to a commonjs dist. The module entry points to a es2015 module dist. Both require native async-generator support, or be down-compiled with a webpack loader.

    Api

    iterable(source)

    iterable() checks to see if source is iterable (either async of sync) and returns an object with [Symbol.asyncIterator] that wraps the source iterable.

    source must have a [Symbol.asyncIterator] or [Symbol.iterator] property. If both are present only [Symbol.asyncIterator] is used. If none are present then an error is thrown.

    Example

    example.js

    const iterable = require('@async-generators/iterable').default;
    
    function* source() {
      yield 1; yield 2; yield* [3, 4];
    }
    
    async function main(){
      for await (let item of iterable(source())){
         console.log(item);
      }
    }
    
    main();

    Execute with the latest node.js:

    node --harmony-async-iteration example.js
    

    output:

    1
    2
    3
    4
    

    Typescript

    This library is fully typed and can be imported using:

    import iterable from '@async-generators/iterable');

    It is also possible to directly execute your properly configured typescript with ts-node:

    ts-node --harmony_async_iteration example.ts
    

    Install

    npm i @async-generators/iterable

    DownloadsWeekly Downloads

    379

    Version

    0.5.0

    License

    MIT

    Last publish

    Collaborators

    • meirionhughes