// Define app variables type to be used across routes
export type AppVariables = {
user: typeof auth.$Infer.Session.user | null;
session: typeof auth.$Infer.Session.session | null;
};
// Initialize Hono app
const app = new Hono<{
Variables: AppVariables;
}>();
// Auth routes with Better-Auth
app.on(["POST", "GET"], "/api/auth/*", (c) => {
return auth.handler(c.req.raw);
});
// Middlewares
app.use("/api/auth/*", corsMiddleware);
app.use("*", sessionMiddleware, logger(), prettyJSON());
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const routes = app.basePath("/api").route("/threads", threads);
export type AppType = typeof routes;
// Serve static files
app.get("*", serveStatic({ root: "./frontend/dist" }));
app.get("*", serveStatic({ path: "./frontend/dist/index.html" }));
// Export the app with server configuration
export default {
port: process.env["PORT"] || 3000,
hostname: "0.0.0.0",
fetch: app.fetch,
};
// Define app variables type to be used across routes
export type AppVariables = {
user: typeof auth.$Infer.Session.user | null;
session: typeof auth.$Infer.Session.session | null;
};
// Initialize Hono app
const app = new Hono<{
Variables: AppVariables;
}>();
// Auth routes with Better-Auth
app.on(["POST", "GET"], "/api/auth/*", (c) => {
return auth.handler(c.req.raw);
});
// Middlewares
app.use("/api/auth/*", corsMiddleware);
app.use("*", sessionMiddleware, logger(), prettyJSON());
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const routes = app.basePath("/api").route("/threads", threads);
export type AppType = typeof routes;
// Serve static files
app.get("*", serveStatic({ root: "./frontend/dist" }));
app.get("*", serveStatic({ path: "./frontend/dist/index.html" }));
// Export the app with server configuration
export default {
port: process.env["PORT"] || 3000,
hostname: "0.0.0.0",
fetch: app.fetch,
};