import { serve } from "@hono/node-server"; import { trpcServer } from "@hono/trpc-server"; import "dotenv/config"; import { Hono } from "hono"; import { cors } from "hono/cors"; import { logger } from "hono/logger"; import { auth } from "./lib/auth"; import { createContext } from "./lib/context"; import { appRouter } from "./routers/index"; const app = new Hono(); app.use(logger()); app.use( "/*", cors({ origin: process.env.CORS_ORIGIN || "", allowMethods: ["GET", "POST", "OPTIONS"], allowHeaders: ["Content-Type", "Authorization"], credentials: true, }), ); app.on(["POST", "GET"], "/api/auth/**", (c) => auth.handler(c.req.raw)); app.use( "/trpc/*", trpcServer({ router: appRouter, createContext: (_opts, hono) => { return createContext({ hono }); }, }), ); app.get("/", (c) => { return c.text("OK"); }); serve({ fetch: app.fetch, port: 3000, }, (info) => { console.log(`Server is running on http://localhost:${info.port}`) });