38 lines
817 B
TypeScript
Raw Normal View History

2024-08-16 01:23:55 +07:00
import { Hono } from "hono";
import { logger } from "hono/logger";
2024-08-17 04:55:01 +07:00
import { serveStatic } from "hono/bun";
2024-08-16 01:23:55 +07:00
import router from "./routes";
2024-08-17 04:55:01 +07:00
import { __PROD } from "./lib/consts";
2024-08-16 01:23:55 +07:00
const HOST = import.meta.env.HOST || "0.0.0.0";
const PORT = Number(import.meta.env.PORT) || 3909;
2024-08-17 04:55:01 +07:00
const DIST_ROOT = import.meta.env.DIST_ROOT || "./dist";
2024-08-16 01:23:55 +07:00
const app = new Hono();
app.use(logger());
// API router
2024-08-17 04:55:01 +07:00
app.route("/api", router);
2024-08-16 01:23:55 +07:00
2024-08-17 04:55:01 +07:00
if (__PROD) {
// Serve client dist
app.use(serveStatic({ root: DIST_ROOT }));
app.use(async (c, next) => {
try {
const file = Bun.file(DIST_ROOT + "/index.html");
return c.html(await file.text());
} catch (err) {
next();
}
});
console.log(`Listening on http://${HOST}:${PORT}`);
}
2024-08-16 01:23:55 +07:00
export default {
fetch: app.fetch,
hostname: HOST,
port: PORT,
};