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.

176 lines (173 loc) 4.4 kB
/* eslint-disable */ /** * Generated `ComponentApi` utility. * * THIS CODE IS AUTOMATICALLY GENERATED. * * To regenerate, run `npx convex dev`. * @module */ import type { FunctionReference } from "convex/server"; /** * A utility for referencing a Convex component's exposed API. * * Useful when expecting a parameter like `components.myComponent`. * Usage: * ```ts * async function myFunction(ctx: QueryCtx, component: ComponentApi) { * return ctx.runQuery(component.someFile.someQuery, { ...args }); * } * ``` */ export type ComponentApi<Name extends string | undefined = string | undefined> = { lib: { checkRateLimit: FunctionReference< "query", "internal", { config: | { capacity?: number; kind: "token bucket"; maxReserved?: number; period: number; rate: number; shards?: number; start?: null; } | { capacity?: number; kind: "fixed window"; maxReserved?: number; period: number; rate: number; shards?: number; start?: number; }; count?: number; key?: string; name: string; reserve?: boolean; throws?: boolean; }, { ok: true; retryAfter?: number } | { ok: false; retryAfter: number }, Name >; clearAll: FunctionReference< "mutation", "internal", { before?: number }, null, Name >; getServerTime: FunctionReference< "mutation", "internal", {}, number, Name >; getValue: FunctionReference< "query", "internal", { config: | { capacity?: number; kind: "token bucket"; maxReserved?: number; period: number; rate: number; shards?: number; start?: null; } | { capacity?: number; kind: "fixed window"; maxReserved?: number; period: number; rate: number; shards?: number; start?: number; }; key?: string; name: string; sampleShards?: number; }, { config: | { capacity?: number; kind: "token bucket"; maxReserved?: number; period: number; rate: number; shards?: number; start?: null; } | { capacity?: number; kind: "fixed window"; maxReserved?: number; period: number; rate: number; shards?: number; start?: number; }; shard: number; ts: number; value: number; }, Name >; rateLimit: FunctionReference< "mutation", "internal", { config: | { capacity?: number; kind: "token bucket"; maxReserved?: number; period: number; rate: number; shards?: number; start?: null; } | { capacity?: number; kind: "fixed window"; maxReserved?: number; period: number; rate: number; shards?: number; start?: number; }; count?: number; key?: string; name: string; reserve?: boolean; throws?: boolean; }, { ok: true; retryAfter?: number } | { ok: false; retryAfter: number }, Name >; resetRateLimit: FunctionReference< "mutation", "internal", { key?: string; name: string }, null, Name >; }; time: { getServerTime: FunctionReference< "mutation", "internal", {}, number, Name >; }; };