2026-04-19 14:18:20 +08:00
|
|
|
interface RateLimiterSnapshot {
|
2026-05-01 20:39:09 +08:00
|
|
|
refreshedAt: number
|
|
|
|
|
bucketCount: number
|
2026-04-19 14:18:20 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const state: RateLimiterSnapshot = {
|
|
|
|
|
refreshedAt: 0,
|
|
|
|
|
bucketCount: 0,
|
2026-05-01 20:39:09 +08:00
|
|
|
}
|
2026-04-19 14:18:20 +08:00
|
|
|
|
|
|
|
|
export function touchRateLimiter(bucketCount: number): void {
|
2026-05-01 20:39:09 +08:00
|
|
|
state.refreshedAt = Date.now()
|
|
|
|
|
state.bucketCount = bucketCount
|
2026-04-19 14:18:20 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function getRateLimiterSnapshot(): RateLimiterSnapshot {
|
2026-05-01 20:39:09 +08:00
|
|
|
return { ...state }
|
2026-04-19 14:18:20 +08:00
|
|
|
}
|