Skip to content

Repository files navigation

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

importassertfrom"assert";import{CachedSyncIterable}from"cached-iterable";function*countdown(i){while(i--){yieldi;}}letnumbers=newCachedSyncIterable(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';

About

Iterables which cache the values they yield

Resources

Stars

6 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages