cached-iterable

0.3.0 • Public • Published

cached-iterable

cached-iterable exposes two classes which implement the iterable protocol:

  • CachedSyncIterable,
  • CachedAsyncIterable.

You can wrap any iterable in these classes to create a new iterable which caches the yielded elements. This is useful for iterating over an iterable many times without depleting it.

Installation

cached-iterable can be used both on the client-side and the server-side. You can install it from the npm registry or use it as a standalone script (as the CachedIterable global).

npm install cached-iterable

How to use

import assert from "assert";
import {CachedSyncIterable} from "cached-iterable";
 
function * countdown(i) {
    while (i--) {
        yield i;
    }
}
 
let numbers = new CachedSyncIterable(countdown(3));
 
// `numbers` can be iterated over multiple times.
assert.deepEqual([...numbers], [3, 2, 1, 0]);
assert.deepEqual([...numbers], [3, 2, 1, 0]);

Compatibility

For legacy browsers, the compat build has been transpiled using Babel's env preset. It requires the regenerator runtime provided by babel-polyfill.

import {CachedSyncIterable} from 'cached-iterable/compat';

Readme

Keywords

none

Package Sidebar

Install

npm i cached-iterable

Weekly Downloads

5,988

Version

0.3.0

License

Apache-2.0

Unpacked Size

18.3 kB

Total Files

10

Last publish

Collaborators

  • stasm
  • zbraniecki