aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Error/rateLimit.ts
blob: b70094e64ed8a5bd3b6d9efc3b300d773872e7f0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
import type { RequestEvent } from '@sveltejs/kit';
import { RateLimiter } from 'sveltekit-rate-limiter/server';

export const checkRateLimit = async (event: RequestEvent) => {
  const limiter = new RateLimiter({ rates: { IP: [5, 's'] } });

  await limiter.cookieLimiter?.preflight(event);

  if (await limiter.isLimited(event)) return new Response('rate-limited');

  return null;
};