@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.
139 lines • 4.19 kB
TypeScript
/**
* 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>;
};
};
//# sourceMappingURL=component.d.ts.map