feat(cache): add Cache-Control middleware and update .env.example
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import type { MiddlewareHandler } from "hono";
|
||||
|
||||
// Define middleware to add Cache-Control header
|
||||
const cacheControlMiddleware: MiddlewareHandler = async (c, next) => {
|
||||
const sMaxAge = process.env.S_MAXAGE || "60";
|
||||
const staleWhileRevalidate = process.env.STALE_WHILE_REVALIDATE || "30";
|
||||
c.header(
|
||||
"Cache-Control",
|
||||
`s-maxage=${sMaxAge}, stale-while-revalidate=${staleWhileRevalidate}`
|
||||
);
|
||||
|
||||
await next();
|
||||
};
|
||||
|
||||
export default cacheControlMiddleware;
|
||||
@@ -5,6 +5,7 @@ import corsConfig from "./config/cors.js";
|
||||
import { ratelimit } from "./config/ratelimit.js";
|
||||
|
||||
import { hianimeRouter } from "./routes/hianime.js";
|
||||
import cacheControlMiddleware from "./config/cache_control_middleware.js";
|
||||
|
||||
import { Hono } from "hono";
|
||||
import { logger } from "hono/logger";
|
||||
@@ -26,6 +27,7 @@ const app = new Hono<{ Variables: AniwatchAPIVariables }>();
|
||||
|
||||
app.use(logger());
|
||||
app.use(corsConfig);
|
||||
app.use(cacheControlMiddleware);
|
||||
|
||||
// CAUTION: For personal deployments, "refrain" from having an env
|
||||
// named "ANIWATCH_API_HOSTNAME". You may face rate limitting
|
||||
|
||||
Reference in New Issue
Block a user