diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2024-12-08 11:56:26 -0500 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2024-12-08 11:56:26 -0500 |
| commit | 2bcac80092dd0fe14b2800cd47ef9c0b96e66bc8 (patch) | |
| tree | 369d002c2da6e89cedee91a14334cfb16ed88d99 /packages/backend/src/misc | |
| parent | move all Rate Limit type defs to rate-limit-utils.ts (diff) | |
| download | sharkey-2bcac80092dd0fe14b2800cd47ef9c0b96e66bc8.tar.gz sharkey-2bcac80092dd0fe14b2800cd47ef9c0b96e66bc8.tar.bz2 sharkey-2bcac80092dd0fe14b2800cd47ef9c0b96e66bc8.zip | |
use fraction seconds for rate limit headers
Diffstat (limited to 'packages/backend/src/misc')
| -rw-r--r-- | packages/backend/src/misc/rate-limit-utils.ts | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/backend/src/misc/rate-limit-utils.ts b/packages/backend/src/misc/rate-limit-utils.ts index 00c0701ad6..6336f29cb7 100644 --- a/packages/backend/src/misc/rate-limit-utils.ts +++ b/packages/backend/src/misc/rate-limit-utils.ts @@ -126,14 +126,20 @@ export function hasMinLimit(limit: LegacyRateLimit): limit is LegacyRateLimit & export function sendRateLimitHeaders(reply: FastifyReply, info: LimitInfo): void { // Number of seconds until the limit has fully reset. - reply.header('X-RateLimit-Clear', info.fullResetSec.toString()); + const clear = (info.fullResetMs / 1000).toFixed(3); + reply.header('X-RateLimit-Clear', clear); + // Number of calls that can be made before being limited. - reply.header('X-RateLimit-Remaining', info.remaining.toString()); + const remaining = info.remaining.toString(); + reply.header('X-RateLimit-Remaining', remaining); if (info.blocked) { // Number of seconds to wait before trying again. Left for backwards compatibility. - reply.header('Retry-After', info.resetSec.toString()); + const retry = info.resetSec.toString(); + reply.header('Retry-After', retry); + // Number of milliseconds to wait before trying again. - reply.header('X-RateLimit-Reset', info.resetMs.toString()); + const reset = (info.resetMs / 1000).toFixed(3); + reply.header('X-RateLimit-Reset', reset); } } |