cachelot
Version:
locking based inMemory cache
35 lines (34 loc) • 1.44 kB
TypeScript
declare type OnEvicted = (a: string, obj: Item["Object"] | null) => null;
declare class Item {
Expiration: number;
Object: any;
constructor(Object: any, Expiration: number);
Expired(): boolean;
}
export declare class Cache {
defaultExpiration: number;
items: Record<string, Item>;
onEvicted: OnEvicted;
janitor: any;
constructor(defaultExpiration: number, items: Record<string, Item>);
Set(k: string, x: any, d: number): Promise<void>;
set(k: string, x: any, d: number): void;
SetDefault(k: string, x: any): void;
Get(k: string): Promise<[Item["Object"], boolean]>;
GetWithExpiration(k: string): Promise<[Item["Object"], Item["Expiration"], boolean]>;
get(k: string): [Item["Object"], boolean];
Add(k: string, x: any, d: number): Promise<Error | null>;
Replace(k: string, x: any, d: number): Promise<any>;
Delete(k: string): Promise<void>;
delete(k: string): [Item["Object"] | null, boolean];
DeleteExpired(): Promise<void>;
OnEvicted(fn: OnEvicted): Promise<void>;
Items(): Promise<Record<string, Item>>;
ItemCount(): Promise<number>;
Flush(): Promise<void>;
stopJanitor(): void;
runJanitor(interval: number): void;
}
declare function New(defaultExpiration: number, cleanUpInterval: number): Cache;
declare function NewFrom(defaultExpiration: number, cleanUpInterval: number, items: Record<string, Item>): Cache;
export { New, NewFrom };