@stnekroman/tstools
Version:
Set of handy tools for TypeScript development
12 lines (11 loc) • 464 B
TypeScript
import { type IDictionary } from "./IDictionary";
export declare abstract class LoadingCache<T, ARGS extends unknown[] = [string], KEY = ARGS[0]> {
private readonly map;
constructor(mapImpl?: IDictionary<KEY, Promise<T>>);
abstract load(...args: ARGS): Promise<T>;
uniqueKey(...args: ARGS): KEY;
get(...args: ARGS): Promise<T>;
has(...args: ARGS): boolean;
put(...[data, ...args]: [T | Promise<T>, ...ARGS]): void;
clear(): void;
}