export class Cache { private cache: Map; private lifetime: number; constructor(lifetime: Cache['lifetime']) { this.lifetime = lifetime; } public set(key: string | null, value: T):void { this.cache.set(key, { date: Date.now(), value }); } public get(key: string | null): T | null { const cached = this.cache.get(key); if (cached == null) return null; if ((Date.now() - cached.date) > this.lifetime) { this.cache.delete(key); return null; } return cached.value; } }