memoize-fs
Version:
Node.js solution for memoizing/caching function results on the file system
22 lines (21 loc) • 934 B
TypeScript
export interface MemoizerOptions {
cacheId: string;
cachePath: string;
salt: string;
maxAge: number;
force: boolean;
astBody: boolean;
noBody: boolean;
throwError: boolean;
retryOnInvalidCache: boolean;
serialize: (val: unknown) => string;
deserialize: (val: string) => unknown;
}
export interface Memoizer {
fn: <FN extends (...args: never) => unknown>(fn: FN, opt?: Partial<MemoizerOptions>) => Promise<(...args: Parameters<FN>) => Promise<Awaited<ReturnType<FN>>>>;
readonly cacheHit: boolean | undefined;
getCacheFilePath: (fn: (...args: never) => unknown, args: unknown[], opt: Partial<MemoizerOptions>) => string;
invalidate: (cacheId?: string) => Promise<void>;
}
export declare function getCacheFilePath(fn: unknown, args: unknown[], opt: Partial<MemoizerOptions>): string;
export default function buildMemoizer(memoizerOptions: Partial<MemoizerOptions>): Memoizer;