From 407b2423af31ecaf44035f66a180a0bbc40e3aaa Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Tue, 10 Dec 2024 19:01:35 -0500 Subject: fix redis transaction implementation --- packages/backend/src/misc/rate-limit-utils.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'packages/backend/src/misc') diff --git a/packages/backend/src/misc/rate-limit-utils.ts b/packages/backend/src/misc/rate-limit-utils.ts index 9909bb97fa..cc13111390 100644 --- a/packages/backend/src/misc/rate-limit-utils.ts +++ b/packages/backend/src/misc/rate-limit-utils.ts @@ -117,12 +117,27 @@ export interface LimitInfo { fullResetMs: number; } +export const disabledLimitInfo: Readonly = Object.freeze({ + blocked: false, + remaining: Number.MAX_SAFE_INTEGER, + resetSec: 0, + resetMs: 0, + fullResetSec: 0, + fullResetMs: 0, +}); + export function isLegacyRateLimit(limit: RateLimit): limit is LegacyRateLimit { return limit.type === undefined; } -export function hasMinLimit(limit: LegacyRateLimit): limit is LegacyRateLimit & { minInterval: number } { - return !!limit.minInterval; +export type MaxLegacyLimit = LegacyRateLimit & { duration: number, max: number }; +export function hasMaxLimit(limit: LegacyRateLimit): limit is MaxLegacyLimit { + return limit.max != null && limit.duration != null; +} + +export type MinLegacyLimit = LegacyRateLimit & { minInterval: number }; +export function hasMinLimit(limit: LegacyRateLimit): limit is MinLegacyLimit { + return limit.minInterval != null; } export function sendRateLimitHeaders(reply: FastifyReply, info: LimitInfo): void { -- cgit v1.2.3-freya