import { createApp } from "./app.js"; import { env } from "./config/env.js"; import { bootstrapAppData } from "./lib/bootstrap.js"; import { prisma } from "./lib/prisma.js"; import { setLatestStartupReport } from "./lib/startup-state.js"; import { assertStartupReadiness } from "./lib/startup-validation.js"; async function start() { await bootstrapAppData(); const startupReport = await assertStartupReadiness(); setLatestStartupReport(startupReport); for (const check of startupReport.checks.filter((entry) => entry.status !== "PASS")) { console.warn(`[startup:${check.status.toLowerCase()}] ${check.label}: ${check.message}`); } const app = createApp(); const server = app.listen(env.PORT, () => { console.log(`MRP server listening on port ${env.PORT}`); }); const shutdown = async () => { server.close(); await prisma.$disconnect(); }; process.on("SIGINT", shutdown); process.on("SIGTERM", shutdown); } start().catch(async (error) => { console.error(error); await prisma.$disconnect(); process.exit(1); });