@ta-kiyama/imgen

1.1.0 • Public • Published

npm version

imgen

immutable generator generator for node.js

install

npm install @ta-kiyama/imgen

sample

sync generator function

import imgen from "@ta-kiyama/imgen";

const itr = imgen(function* (arg) {
  const result = yield arg;
  yield result * 2;
  yield 3;
});

itr.next(1); // { value: 1, done: false }

itr.next(1); // { value: 1, done: false }

itr
  .next(1)
  .next(2); // { value: 4, done: false }

itr
  .next(1)
  .next(2)
  .next(); // { value: 3, done: false }

itr
  .next(1)
  .next(2)
  .next()
  .next(); // { value: undefined, done: true }

itr.next(1); // { value: 1, done: false }

async generator function

import imgen from "@ta-kiyama/imgen";

const itr = imgen(async function* (arg) {
  const result = yield arg;
  await new Promise((r) => setTimeout(r, 1000));
  yield result * 2;
  yield 3;
});

await itr
  .next(1)
  .toPromise(); // { value: 1, done: false }

await itr.next(1); // { value: 1, done: false }

await itr
  .next(1)
  .next(2)
  .toPromise(); // { value: 4, done: false } ※after 1sec

itr
  .next(1)
  .next(2)
  .next()
  .toPromise(); // { value: 3, done: false } ※after 1sec

itr
  .next(1)
  .next(2)
  .next()
  .next()
  .toPromise(); // { value: undefined, done: true } ※after 1sec

itr
  .next(1)
  .toPromise(); // { value: 1, done: false }

Readme

Keywords

none

Package Sidebar

Install

npm i @ta-kiyama/imgen

Weekly Downloads

4

Version

1.1.0

License

MIT

Unpacked Size

13.2 kB

Total Files

5

Last publish

Collaborators

  • ta-kiyama