UNPKG

kitcn

Version:

kitcn - React Query integration and CLI tools for Convex

76 lines (75 loc) 2.15 kB
'use client'; import { FunctionReference } from "convex/server"; //#region src/ratelimit/types.d.ts type RatelimitSnapshot = { value: number; ts: number; shard: number; config: ResolvedAlgorithm; }; type FixedWindowAlgorithm = { kind: 'fixedWindow'; limit: number; window: number; capacity: number; start?: number; maxReserved?: number; shards: number; }; type SlidingWindowAlgorithm = { kind: 'slidingWindow'; limit: number; window: number; maxReserved?: number; shards: number; }; type TokenBucketAlgorithm = { kind: 'tokenBucket'; refillRate: number; interval: number; maxTokens: number; maxReserved?: number; shards: number; }; type ResolvedAlgorithm = FixedWindowAlgorithm | SlidingWindowAlgorithm | TokenBucketAlgorithm; type HookCheckValue = { value: number; ts: number; config: ResolvedAlgorithm; shard: number; ok: boolean; retryAt?: number; }; //#endregion //#region src/ratelimit/react/use-rate-limit.d.ts type GetRatelimitValueQueryRef = FunctionReference<'query', 'public', { identifier?: string; sampleShards?: number; }, RatelimitSnapshot>; type GetServerTimeMutationRef = FunctionReference<'mutation', 'public', Record<string, never>, number>; type GetRatelimitValueQuery = GetRatelimitValueQueryRef | string; type GetServerTimeMutation = GetServerTimeMutationRef | string; type UseRatelimitOptions = { identifier?: string; count?: number; sampleShards?: number; getServerTimeMutation?: GetServerTimeMutation; }; declare function useRatelimit(getRatelimitValueQuery: GetRatelimitValueQuery, options?: UseRatelimitOptions): { status: undefined; check: (ts?: number, requestedCount?: number) => HookCheckValue | undefined; } | { status: { ok: false; retryAt: number; }; check: (ts?: number, requestedCount?: number) => HookCheckValue | undefined; } | { status: { ok: true; retryAt: undefined; }; check: (ts?: number, requestedCount?: number) => HookCheckValue | undefined; }; //#endregion export { GetRatelimitValueQuery, GetRatelimitValueQueryRef, GetServerTimeMutation, GetServerTimeMutationRef, UseRatelimitOptions, useRatelimit };