11'use strict'
22
3+ const http = require ( 'http' )
34const express = require ( 'express' )
45const { resolve } = require ( 'path' )
56const { readFile } = require ( 'fs' ) . promises
@@ -103,29 +104,25 @@ const apolloServer = createApolloServer(ApolloServer, {
103104 formatError : handleGraphError ,
104105} )
105106
106- // Variable to track if Apollo Server has started
107- let apolloServerReady = false
108-
109- // Start Apollo Server
110- apolloServer . start ( ) . then ( ( ) => {
111- apolloServerReady = true
112- signale . success ( 'Apollo Server started' )
113- } )
107+ // Start Apollo Server asynchronously
108+ const apolloServerStarted = apolloServer . start ( )
109+ . then ( ( ) => {
110+ signale . success ( 'Apollo Server started' )
111+ } )
114112 . catch ( ( error ) => {
115113 signale . fatal ( 'Failed to start Apollo Server:' , error )
116114 process . exit ( 1 )
117115 } )
118116
119117// GraphQL endpoint - wait for server to start before processing
120118app . use ( '/api' , express . json ( ) , async ( request , response , next ) => {
121- if ( ! apolloServerReady ) {
122- await apolloServer . start ( )
123- apolloServerReady = true
124- }
125- next ( )
126- } , expressMiddleware ( apolloServer , {
127- context : createExpressContext ,
128- } ) )
119+ // Ensure Apollo Server is started
120+ await apolloServerStarted
121+ // Call expressMiddleware after server is started
122+ return expressMiddleware ( apolloServer , {
123+ context : createExpressContext ,
124+ } ) ( request , response , next )
125+ } )
129126
130127// Health check endpoint
131128app . get ( '/.well-known/apollo/server-health' , ( request , response ) => {
@@ -153,4 +150,7 @@ app.use((error, request, response) => {
153150 response . status ( error . statusCode ) . send ( error . message )
154151} )
155152
156- module . exports = app
153+ // Create HTTP server
154+ const server = http . createServer ( app )
155+
156+ module . exports = server
0 commit comments