UNPKG

mes-engine

Version:

A powerful and flexible video processing framework for Node.js with support for multiple processing engines, adaptive streaming, and intelligent caching.

35 lines (30 loc) 912 B
// cache/LRU.ts export class LRU<T> { private maxSize: number; private cache: Map<string, T>; constructor(maxSize: number) { this.maxSize = maxSize; this.cache = new Map(); } set(key: string, value: T): void { if (this.cache.has(key)) { this.cache.delete(key); } else if (this.cache.size >= this.maxSize) { const oldestKey = this.cache.keys().next().value; if (oldestKey !== undefined) { this.cache.delete(oldestKey); } } this.cache.set(key, value); } get(key: string): T | undefined { if (!this.cache.has(key)) return undefined; const value = this.cache.get(key)!; this.cache.delete(key); this.cache.set(key, value); return value; } clear(): void { this.cache.clear(); } }