summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2024-12-08 11:56:26 -0500
committerHazelnoot <acomputerdog@gmail.com>2024-12-08 11:56:26 -0500
commit2bcac80092dd0fe14b2800cd47ef9c0b96e66bc8 (patch)
tree369d002c2da6e89cedee91a14334cfb16ed88d99 /packages/backend/src/misc
parentmove all Rate Limit type defs to rate-limit-utils.ts (diff)
downloadsharkey-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.ts14
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);
}
}