From 112f5188ed64dcfb4ac9e1ab8c9726e8783bfc46 Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Sun, 24 Aug 2025 14:02:28 +0700 Subject: [PATCH] :sparkles: add throttle middleware Create throttling on middleware to pause requests until a specified time before continuing. (default time 2s) --- src/middleware/auth.middleware.ts | 14 -------------- src/middleware/system/throttle.middleware.ts | 6 ++++++ 2 files changed, 6 insertions(+), 14 deletions(-) delete mode 100644 src/middleware/auth.middleware.ts create mode 100644 src/middleware/system/throttle.middleware.ts diff --git a/src/middleware/auth.middleware.ts b/src/middleware/auth.middleware.ts deleted file mode 100644 index e7294c0..0000000 --- a/src/middleware/auth.middleware.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Context } from "elysia"; -import { getCookie } from "../helpers/http/userHeader/cookies/getCookies"; -import { mainErrorHandler } from "../helpers/error/handler"; -import { returnErrorResponse } from "../helpers/callback/httpResponse"; - -export const authMiddleware = (ctx: Context) => { - try { - const cookie = getCookie(ctx); - if (!cookie.auth_token) - return returnErrorResponse(ctx.set, 401, "User Unauthorized"); - } catch (error) { - return mainErrorHandler(ctx.set, error); - } -}; diff --git a/src/middleware/system/throttle.middleware.ts b/src/middleware/system/throttle.middleware.ts new file mode 100644 index 0000000..e5de59f --- /dev/null +++ b/src/middleware/system/throttle.middleware.ts @@ -0,0 +1,6 @@ +import Elysia from "elysia"; + +export const throttleMiddleware = (delayMs = 2000) => (app: Elysia) => + app.onRequest(async () => { + await new Promise((resolve) => setTimeout(resolve, delayMs)); + });