@trpc-limiter/upstash
Version:
Upstash Rate Limiter Adapter for tRPC Limiter.
25 lines (24 loc) • 690 B
JavaScript
// 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
};