iterparse
Version:
Delightful data parsing
50 lines • 1.59 kB
TypeScript
/// <reference types="node" />
import { AnyIterable, IX } from "./types";
import { ProgressReportOptions } from "./helpers";
export declare function onLastItem<T>(fn: () => any): (q: AnyIterable<T>) => AsyncGenerator<T, void, unknown>;
export interface CacheIterOptions extends ProgressReportOptions {
/**
* Where cache data will be stored?
*/
cacheFolder: string;
/**
* Is cache enabled?
*/
enabled?: boolean;
/**
* When reference id changes cache folder will be regenerated.
*/
referenceId?: string;
/**
* Format cache in human readable `JSON` format.
*/
nice?: {
buffer: number;
};
logger?: Pick<Console, 'info'>;
}
export declare function _cacheIter<T>(data: AnyIterable<T>, options: CacheIterOptions): IX<T>;
/**
* Cache iterator output to file.
* Useful when we need develop complex iterator pipelines.
* @include ./CacheIterOptions.md
* @example
* import { cacheIter } from 'iterparse'
*
* getFeed() // If cache exists get feed function will not be called
* .pipe(cacheIter({ cacheFolder: "./_cache" }))
* .count()
*
* @example
* import { cacheIter } from 'iterparse'
*
* const cachedIter = cacheIter(getFeed(), { cacheFolder: "./_cache" })
*
* for await (const item of cachedIter) {
* console.log(item)
* }
* @category Utility
*/
export declare function cacheIter<T>(options: CacheIterOptions): (data: AnyIterable<T>) => IX<T>;
export declare function cacheIter<T>(data: AnyIterable<T>, options: CacheIterOptions): IX<T>;
//# sourceMappingURL=cache.d.ts.map