rate-limit.ts 552 B

123456789101112131415161718192021
  1. import { Ratelimit } from "@upstash/ratelimit";
  2. import { Redis } from "@upstash/redis";
  3. const redis = new Redis({
  4. url: process.env.KV_REST_API_URL!,
  5. token: process.env.KV_REST_API_TOKEN!,
  6. });
  7. // 10 requests per minute (sliding window)
  8. export const minuteRateLimit = new Ratelimit({
  9. redis,
  10. limiter: Ratelimit.slidingWindow(10, "1 m"),
  11. prefix: "ratelimit:minute",
  12. });
  13. // 100 requests per day (fixed window)
  14. export const dailyRateLimit = new Ratelimit({
  15. redis,
  16. limiter: Ratelimit.fixedWindow(100, "1 d"),
  17. prefix: "ratelimit:daily",
  18. });