@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
22 lines • 614 B
JavaScript
import { CachableStream } from '@johngw/stream/sources/CachableStream';
/**
* Wraps a `ReadableStream` in a `CachableStream`.
*
* @group Sources
* @example
* ```
* const controller = new ControllableStream<number>()
*
* cacheStream(
* new StorageCache(new MemoryCache(), 'my-cache', 30 * 60_000)),
* ['a', 'cache', 'path']
* controller,
* )
* .pipeTo(write(console.info))
* ```
*/
export function cacheStream(cache, path, stream, ms) {
const reader = stream.getReader();
return new CachableStream(cache, path, async () => reader.read(), ms);
}
//# sourceMappingURL=cacheStream.js.map