Skip to content
This repository has been archived by the owner on Nov 18, 2019. It is now read-only.

async-generators/iterable

Repository files navigation

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

About

wrap async/sync Iterable as an asyncIterable

Resources

License

Stars

Watchers

Forks

Packages

No packages published