aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Error
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-13 18:58:34 -0800
committerFuwn <[email protected]>2024-01-13 18:58:34 -0800
commitf7a8c246f5723aae42a38bb88631893bb1b24d6e (patch)
treef7915250f57fde62fd72a351ffd6e79f0692292e /src/lib/Error
parentrefactor(utility): move loading (diff)
downloaddue.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.ts12
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;
+};