mirror of
https://github.com/lancedb/lancedb.git
synced 2025-12-26 22:59:57 +00:00
36 lines
865 B
TypeScript
36 lines
865 B
TypeScript
export class TTLCache {
|
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
private readonly cache: Map<string, { value: any; expires: number }>;
|
|
|
|
/**
|
|
* @param ttl Time to live in milliseconds
|
|
*/
|
|
constructor(private readonly ttl: number) {
|
|
this.cache = new Map();
|
|
}
|
|
|
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
get(key: string): any | undefined {
|
|
const entry = this.cache.get(key);
|
|
if (entry === undefined) {
|
|
return undefined;
|
|
}
|
|
|
|
if (entry.expires < Date.now()) {
|
|
this.cache.delete(key);
|
|
return undefined;
|
|
}
|
|
|
|
return entry.value;
|
|
}
|
|
|
|
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
set(key: string, value: any): void {
|
|
this.cache.set(key, { value, expires: Date.now() + this.ttl });
|
|
}
|
|
|
|
delete(key: string): void {
|
|
this.cache.delete(key);
|
|
}
|
|
}
|