41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
|
|
|
|
import "dotenv/config";
|
|
import { env } from "./config/env.js";
|
|
import { AppRoutes } from "./presentation/routes.js";
|
|
import { TrackingRoutes } from "./presentation/tracking/routes.js";
|
|
import { Server } from "./presentation/server.js";
|
|
import { prisma } from "./data/postgres/index.js";
|
|
import { seedAdmin } from "./data/seed/seed-admin.js";
|
|
|
|
async function main() {
|
|
try {
|
|
await prisma.$connect();
|
|
console.log("Database connected");
|
|
|
|
// Garantiza que exista la cuenta admin del sistema
|
|
await seedAdmin();
|
|
|
|
// AppRoutes.routes debe leerse ANTES de pedir el simulator para que el
|
|
// controller singleton ya esté construido.
|
|
const routes = AppRoutes.routes;
|
|
|
|
const trackingController = TrackingRoutes.controllerInstance;
|
|
if (trackingController) {
|
|
trackingController.buildSimulator().start();
|
|
}
|
|
|
|
const server = new Server({
|
|
port: env.PORT,
|
|
routes,
|
|
});
|
|
|
|
await server.start();
|
|
} catch (error) {
|
|
console.error(" Error starting application:", error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|