* Clean up expired entries from the rate limiter to prevent memory leaks. * Called periodically during rate limit checks.
()
| 29 | * Called periodically during rate limit checks. |
| 30 | */ |
| 31 | function cleanupExpiredEntries(): void { |
| 32 | const now = Date.now() |
| 33 | for (const [userId, limit] of impressionRateLimiter) { |
| 34 | if (now >= limit.resetAt) { |
| 35 | impressionRateLimiter.delete(userId) |
| 36 | } |
| 37 | } |
| 38 | } |
| 39 | |
| 40 | // Track last cleanup time to avoid cleaning up on every request |
| 41 | let lastCleanupTime = 0 |
no test coverage detected