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() })