@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
64 lines • 1.36 kB
TypeScript
import { StorageCache } from '../storages/StorageCache.js';
import type { Clearable } from '../types/Clearable.js';
import { type CachePuller } from './CachableSource.js';
/**
* An extension to the `ReadableStream` that queues items
* only when a timed cache becomes invalid.
*
* @group Sources
* @see {@link StorageCache}
* @see {@link CachableSource:class}
* @example
* Caching for 30 minutes.
*
* ```
* const cache = new StorageCache(
* localStorage,
* 'my-cache',
* 30 * 60_000
* )
*
* let i = 0
* const stream = new CachableStream<number>(
* cache,
* ['numbers'],
* () => ++i
* )
*
* stream.pipeTo(write(console.info))
* // 1
*
* await setTimeout(30 * 60_000))
* // 2
* ```
* @example
* Manually clearing cache.
*
* ```
* const cache = new StorageCache(
* localStorage,
* 'my-cache',
* 30 * 60_000
* )
*
* let i = 0
* const stream = new CachableStream<number>(
* cache,
* ['numbers'],
* () => ++i
* )
*
* stream.pipeTo(write(console.info))
* // 1
*
* stream.clear()
* // 2
* ```
*/
export declare class CachableStream<T> extends ReadableStream<T> implements Clearable {
#private;
constructor(cache: StorageCache, path: string[], pullItem: CachePuller<T>, ms?: number);
clear(): void;
get sourceHasFinished(): boolean;
}
//# sourceMappingURL=CachableStream.d.ts.map