|
@@ -0,0 +1,54 @@
|
|
|
+const express = require("express")
|
|
|
+const { GracefulShutdownServer, getConfigFile } = require("medusa-core-utils")
|
|
|
+
|
|
|
+const loaders = require("@medusajs/medusa/dist/loaders").default
|
|
|
+
|
|
|
+;(async function () {
|
|
|
+ async function start() {
|
|
|
+ const directory = process.cwd()
|
|
|
+
|
|
|
+ const { configModule: { projectConfig } } = getConfigFile(
|
|
|
+ directory,
|
|
|
+ "medusa-config"
|
|
|
+ )
|
|
|
+
|
|
|
+ const port = projectConfig.port || 9000
|
|
|
+
|
|
|
+ const app = express()
|
|
|
+
|
|
|
+ try {
|
|
|
+ await loaders({ directory, expressApp: app })
|
|
|
+
|
|
|
+ const server = GracefulShutdownServer.create(
|
|
|
+ app.listen(port, (err) => {
|
|
|
+ if (err) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ console.log(`Server is ready on port: ${port}`)
|
|
|
+ })
|
|
|
+ )
|
|
|
+
|
|
|
+ // Handle graceful shutdown
|
|
|
+ const gracefulShutDown = () => {
|
|
|
+ server
|
|
|
+ .shutdown()
|
|
|
+ .then(() => {
|
|
|
+ console.info("Gracefully stopping the server.")
|
|
|
+ process.exit(0)
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ console.error("Error received when shutting down the server.", e)
|
|
|
+ process.exit(1)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ process.on("SIGTERM", gracefulShutDown)
|
|
|
+ process.on("SIGINT", gracefulShutDown)
|
|
|
+ } catch (err) {
|
|
|
+ console.error("Error starting server", err)
|
|
|
+ process.exit(1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ await start()
|
|
|
+})()
|