Registry / storage / cached-iterable

cached-iterable

JSON →
library0.3.0jsnpmunverified

cached-iterable provides CachedSyncIterable and CachedAsyncIterable classes that wrap any iterable to cache yielded elements, enabling multiple iterations without depletion. Stable version 0.3.0, low release cadence (last release Feb 2019). Key differentiator: simple, lightweight caching for both sync and async iterables, with no dependencies and support for legacy browsers via a compat build. Suitable for client-side and server-side use.

npm install cached-iterable
INSTALL
IMPORT
SIG · CACHED-ITERABLE
C
cached-iterable
storagejavascriptv0.3.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

CachedSyncIterable
import { CachedSyncIterable } from 'cached-iterable'
import CachedSyncIterable from 'cached-iterable'
Default export does not exist; always use named import.
CachedAsyncIterable
import { CachedAsyncIterable } from 'cached-iterable'
const { CachedAsyncIterable } = require('cached-iterable')
For CommonJS, use require('cached-iterable').CachedAsyncIterable as it's a named export.
CachedSyncIterable (compat)
import { CachedSyncIterable } from 'cached-iterable/compat'
import { CachedSyncIterable } from 'cached-iterable'
Use 'cached-iterable/compat' for legacy browser support; the main entry is modern ES6.

Demonstrates wrapping sync and async iterables with CachedSyncIterable and CachedAsyncIterable to allow multiple iterations.

import assert from 'assert'; import { CachedSyncIterable, CachedAsyncIterable } from 'cached-iterable'; function* countdown(i) { while (i--) { yield i; } } // Sync iteration const numbers = new CachedSyncIterable(countdown(3)); assert.deepEqual([...numbers], [2, 1, 0]); assert.deepEqual([...numbers], [2, 1, 0]); // Async iteration async function* asyncCountdown(i) { while (i--) { yield i; } } const asyncNumbers = new CachedAsyncIterable(asyncCountdown(3)); const results1 = []; for await (const n of asyncNumbers) { results1.push(n); } const results2 = []; for await (const n of asyncNumbers) { results2.push(n); } assert.deepEqual(results1, [2, 1, 0]); assert.deepEqual(results2, [2, 1, 0]);
Debug
Known issues
gotchaCachedAsyncIterable caches values only after the first iteration; does not cache in-progress iterators.
fix
Ensure first iteration completes before expecting cache to be populated for concurrent consumers.
affects: all
deprecatedThe package has not been updated since 2019; may lack support for newer JavaScript features.
fix
Consider forking or using alternative libraries if compatibility with modern environments is needed.
affects: 0.3.0
Errors
Common errors & fixes
TypeError: cached_iterable_1.CachedSyncIterable is not a constructor
Default import used instead of named import.
fix
Use import { CachedSyncIterable } from 'cached-iterable'
Error: Cannot find module 'cached-iterable/compat'
Compat build not copied to node_modules; requires separate installation or bundler config.
fix
Ensure compat build is present or use main entry for modern environments.
Upgrade
Version history
0.3.0latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
26 hits · last 30 days
node
24
OpenAI (training)
1
Resources
cached-iterable — npm install cached-iterable · libregistry