Package Exports
- cached-iterable
- cached-iterable/compat
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cached-iterable) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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';