(cache: Map<number, { data: T; cachedAt: number }>, id: number, ttl: number)
| 517 | const searchCache = new Map<string, { data: { persons: Person[]; documents: Document[]; events: TimelineEvent[] }; cachedAt: number }>(); |
| 518 | |
| 519 | function getFromMapCache<T>(cache: Map<number, { data: T; cachedAt: number }>, id: number, ttl: number): T | null { |
| 520 | const entry = cache.get(id); |
| 521 | if (entry && Date.now() - entry.cachedAt < ttl) return entry.data; |
| 522 | return null; |
| 523 | } |
| 524 | |
| 525 | function evictExpired<K, V extends { cachedAt: number }>(cache: Map<K, V>, ttl: number, maxSize: number): void { |
| 526 | if (cache.size > maxSize) { |
no outgoing calls
no test coverage detected