From 31ea88d915e27d15efd7c110f8189130338c759b Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 24 Dec 2023 00:59:14 -0800 Subject: feat(mangadex): server-side rate-limit 5/s --- src/lib/rateLimit.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/lib/rateLimit.ts (limited to 'src/lib/rateLimit.ts') diff --git a/src/lib/rateLimit.ts b/src/lib/rateLimit.ts new file mode 100644 index 00000000..98e726a2 --- /dev/null +++ b/src/lib/rateLimit.ts @@ -0,0 +1,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; +}; -- cgit v1.2.3