UNPKG

@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
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