import { Hono } from "hono"; import { serve } from "@hono/node-server"; import { cors } from "hono/cors"; import { logger } from "hono/logger"; import { getDb } from "./db/index"; import { startScheduler } from "./services/scheduler"; import calendarRoutes from "./routes/calendar"; import parksRoutes from "./routes/parks"; import ridesRoutes from "./routes/rides"; import rideHistoryRoutes from "./routes/ride-history"; import statusRoutes from "./routes/status"; import scrapeRoutes from "./routes/scrape"; const PORT = parseInt(process.env.PORT ?? "3001", 10); const app = new Hono(); app.use("*", logger()); app.use("*", cors()); app.route("/api/calendar", calendarRoutes); app.route("/api/parks", parksRoutes); app.route("/api/parks", ridesRoutes); app.route("/api/parks", rideHistoryRoutes); app.route("/api/status", statusRoutes); app.route("/api/scrape", scrapeRoutes); // Initialize database on startup getDb(); console.log("[backend] database initialized"); // Start cron scheduler startScheduler(); // Start HTTP server serve({ fetch: app.fetch, port: PORT }, (info) => { console.log(`[backend] listening on http://localhost:${info.port}`); });