import { Elysia } from "elysia"; import { cors } from "@elysiajs/cors"; import { swagger } from "@elysiajs/swagger"; import { sql } from "drizzle-orm"; import { db } from "./db"; import { valkey } from "./queue"; import { authRoutes } from "./routes/auth"; import { farmRoutes } from "./routes/farms"; import { printerRoutes } from "./routes/printers"; import { jobRoutes } from "./routes/jobs"; import { edgeWsRoute } from "./routes/ws/edge"; const app = new Elysia() .use(cors()) .use(swagger({ path: "/docs" })) .get("/health", async () => { const rows = await db.execute<{ ok: number }>(sql`select 1 as ok`); const valkeyPing = await valkey.ping(); return { status: "ok", db: rows[0]?.ok === 1, valkey: valkeyPing === "PONG" }; }) .use(authRoutes) .use(farmRoutes) .use(printerRoutes) .use(jobRoutes) .use(edgeWsRoute) .listen(Number(process.env.PORT ?? 3000)); console.log(`continuum-backend listening on :${app.server?.port}`); export type App = typeof app;