Florian Bouillon d76f412b82 feat: Add moer element
Signed-off-by: Florian BOUILLON <f.bouillon@aptatio.com>
2023-06-27 18:30:44 +02:00

19 lines
456 B
TypeScript

import { defineMiddleware } from "astro/middleware"
import RateLimiter from '../libs/RateLimiter'
// `context` and `next` are automatically typed
export default defineMiddleware(async ({ request, locals }, next) => {
if (!request.url.includes('api')) {
return next()
}
const limit = RateLimiter.getInstance().consume(locals.authKey as string)
if ('status' in limit) {
return limit
}
locals.responseBuilder.addHeaders(limit)
return next()
})