28 lines
814 B
TypeScript
28 lines
814 B
TypeScript
import { Hono } from "hono";
|
|
import { cachePurgeHandler, cacheResponseHandler } from "./cache";
|
|
import { langRewriteHandler } from "./lang";
|
|
|
|
const app = new Hono();
|
|
|
|
const USE_CACHE = false;
|
|
|
|
app.use("*", langRewriteHandler);
|
|
|
|
if (USE_CACHE) {
|
|
app.on("PURGE", "*", cachePurgeHandler);
|
|
app.on("GET", "*", cacheResponseHandler);
|
|
} else {
|
|
app.use("*", async (c) => {
|
|
const url = new URL(c.get("REWRITE" as never));
|
|
const rewriteUrl = `http://${Bun.env.ASTRO_HOST}:${Bun.env.ASTRO_PORT}${url.pathname}${url.search}`;
|
|
console.log("🔵 Rewrote", c.req.url, "to", rewriteUrl);
|
|
return await fetch(rewriteUrl);
|
|
});
|
|
}
|
|
|
|
const server = Bun.serve({
|
|
port: parseInt(Bun.env.MIDDLEWARE_PORT ?? "8000"),
|
|
fetch: app.fetch,
|
|
});
|
|
console.log(`👂 Listening on http://${server.hostname}:${server.port}`);
|