@convex-dev/rate-limiter
Version:
A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.
45 lines • 1.24 kB
TypeScript
import { RateLimitArgs, RateLimitConfig } from "../shared.js";
import { DatabaseReader } from "./_generated/server.js";
export declare const MIN_CHOOSE_TWO = 3;
export declare function checkRateLimitOrThrow(db: DatabaseReader, args: RateLimitArgs): Promise<{
status: {
retryAfter?: number | undefined;
ok: true;
} | {
ok: false;
retryAfter: number;
};
updates: {
existing: {
_id: import("convex/values").GenericId<"rateLimits">;
_creationTime: number;
key?: string | undefined;
name: string;
shard: number;
value: number;
ts: number;
} | null;
value: number;
ts: number;
shard: number;
}[];
}>;
export declare function _checkRateLimitInternal(existing: {
value: number;
ts: number;
} | null, config: RateLimitConfig, count?: number, reserve?: boolean): {
status: {
readonly ok: false;
readonly retryAfter: number;
};
value: number;
ts: number;
} | {
status: {
readonly ok: true;
readonly retryAfter: number | undefined;
};
value: number;
ts: number;
};
//# sourceMappingURL=internal.d.ts.map