UNPKG

@trpc-limiter/upstash

Version:

Upstash Rate Limiter Adapter for tRPC Limiter.

25 lines (24 loc) 690 B
// src/index.ts import { defineLimiterWithProps } from "@trpc-limiter/core"; import { Ratelimit } from "@upstash/ratelimit"; import { defaultFingerPrint as defaultFingerPrint2 } from "@trpc-limiter/core"; var isBlocked = async (store, fingerprint) => { const { success, pending, ...rest } = await store.limit(fingerprint); await pending; return success ? null : rest; }; var createTRPCUpstashLimiter = defineLimiterWithProps( { store: (opts) => new Ratelimit(opts.rateLimitOpts(opts)), isBlocked }, (currnetState) => { return { rateLimitOpts: currnetState.rateLimitOpts }; } ); export { createTRPCUpstashLimiter, defaultFingerPrint2 as defaultFingerPrint };