43 lines
951 B
TypeScript
43 lines
951 B
TypeScript
import { logger } from "@plane/logger";
|
|
import { Server } from "./server";
|
|
|
|
let server: Server;
|
|
|
|
async function startServer() {
|
|
server = new Server();
|
|
try {
|
|
await server.initialize();
|
|
server.listen();
|
|
} catch (error) {
|
|
logger.error("Failed to start server:", error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
startServer();
|
|
|
|
// Graceful shutdown on unhandled rejection
|
|
process.on("unhandledRejection", async (err: Error) => {
|
|
logger.error(`UNHANDLED REJECTION! 💥 Shutting down...`, err);
|
|
try {
|
|
if (server) {
|
|
await server.destroy();
|
|
}
|
|
} finally {
|
|
logger.info("Exiting process...");
|
|
process.exit(1);
|
|
}
|
|
});
|
|
|
|
// Graceful shutdown on uncaught exception
|
|
process.on("uncaughtException", async (err: Error) => {
|
|
logger.error(`UNCAUGHT EXCEPTION! 💥 Shutting down...`, err);
|
|
try {
|
|
if (server) {
|
|
await server.destroy();
|
|
}
|
|
} finally {
|
|
logger.info("Exiting process...");
|
|
process.exit(1);
|
|
}
|
|
});
|