const express = require("express"); const { GracefulShutdownServer } = require("medusa-core-utils"); const loaders = require("@medusajs/medusa/dist/loaders/index").default; (async () => { async function start() { const app = express(); const directory = process.cwd(); try { const { container, dbConnection } = await loaders({ directory, expressApp: app, }); const configModule = container.resolve("configModule"); const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000; const server = GracefulShutdownServer.create( app.listen(port, (err) => { if (err) { return; } console.log(`Server is ready on port: ${port}`); }) ); // Handle graceful shutdown const shutdown = async () => { await server.shutdown(); await dbConnection.close(); }; process.on("SIGTERM", shutdown); process.on("SIGINT", shutdown); } catch (err) { console.error("Error starting server", err); process.exit(1); } } await start(); })();