Every unique key is cached forever with no eviction.
Map and Object growthMap entry count growsObject and Array deltas increase steadilyMap → cached valuesA Map stores every fetched value under a new key. Nothing is ever deleted or expired.
Each tick adds a new key with a large array value to an unbounded Map. Without LRU eviction or TTL, the cache grows forever.
// Fix: bound the cache with LRU or TTL
const MAX = 100;
if (cache.size >= MAX) {
const firstKey = cache.keys().next().value;
cache.delete(firstKey);
}
cache.set(key, value);