diff options
| author | Fuwn <[email protected]> | 2024-01-13 18:58:34 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-13 18:58:34 -0800 |
| commit | f7a8c246f5723aae42a38bb88631893bb1b24d6e (patch) | |
| tree | f7915250f57fde62fd72a351ffd6e79f0692292e /src/lib/Error | |
| parent | refactor(utility): move loading (diff) | |
| download | due.moe-f7a8c246f5723aae42a38bb88631893bb1b24d6e.tar.xz due.moe-f7a8c246f5723aae42a38bb88631893bb1b24d6e.zip | |
refactor(utility): move helpers to utility
Diffstat (limited to 'src/lib/Error')
| -rw-r--r-- | src/lib/Error/rateLimit.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/Error/rateLimit.ts b/src/lib/Error/rateLimit.ts new file mode 100644 index 00000000..98e726a2 --- /dev/null +++ b/src/lib/Error/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; +}; |