27 lines
724 B
TypeScript
27 lines
724 B
TypeScript
|
export interface CacheEntry<T> {
|
||
|
t: number;
|
||
|
value: T;
|
||
|
}
|
||
|
export declare class Cache<T> {
|
||
|
method: (key: string) => Promise<T>;
|
||
|
ttl: number;
|
||
|
evictionTime: number;
|
||
|
gcPeriod: number;
|
||
|
maxEntries: number;
|
||
|
private entries;
|
||
|
map: Map<string, CacheEntry<T>>;
|
||
|
private timer;
|
||
|
constructor(method?: (key: string) => Promise<T>);
|
||
|
put(key: string, value: T): void;
|
||
|
getFromSource(key: string): Promise<T>;
|
||
|
get(key: string): Promise<T>;
|
||
|
getSync(key: string): T | null;
|
||
|
exists(key: string): boolean;
|
||
|
scheduleGC(): void;
|
||
|
startGC(): void;
|
||
|
runGC: () => void;
|
||
|
stopGC: () => void;
|
||
|
retire(key: string, newTime?: number): boolean;
|
||
|
remove(key: string): boolean;
|
||
|
}
|