nl_tokens: Packager - like Server running on top of Webpack
pl_tokens: function createServer ( config : { configPath : ? string , configOptions : Object } ) { const appHandler = express ( ) ; appHandler . disable ( 'etag' ) ; const { configPath , configOptions } = config ; const compiler = new Compiler ( { configPath , configOptions , } ) ; const loggerMiddleware = initUI ( compiler , configOptions ) ; process . on ( 'uncaughtException' , err => { compiler . terminate ( ) ; throw err ; } ) ; <mask> . on ( 'SIGINT' , ( ) => { compiler . terminate ( ) ; process . exit ( 0 ) ; } ) ; process . on ( 'SIGTERM' , ( ) => { compiler . terminate ( ) ; process . exit ( 2 ) ; } ) ; const compilerMiddleware = createCompilerMiddleware ( compiler , { configPath , configOptions , } ) ; const httpServer = http . createServer ( appHandler ) ; const webSocketServer = new WebSocketServer ( { server : httpServer } ) ; const debuggerProxy = new WebSocketDebuggerProxy ( webSocketProxy ( webSocketServer , '/debugger-proxy' ) ) ; if ( ! configOptions . disableHotReloading ) { hotMiddleware ( compiler , { nativeProxy : webSocketProxy ( webSocketServer , '/hot' ) , haulProxy : webSocketProxy ( webSocketServer , '/haul-hmr' ) , } ) ; } // Middlewares appHandler . use ( express . static ( path . join ( __dirname , '/assets/public' ) ) ) . use ( rawBodyMiddleware ) . use ( cleanPathMiddleware ) . use ( devToolsMiddleware ( debuggerProxy ) ) . use ( liveReloadMiddleware ( compiler ) ) . use ( statusPageMiddleware ) . use ( symbolicateMiddleware ( compiler , { configPath , configOptions , } ) ) . use ( openInEditorMiddleware ( ) ) . use ( '/systrace' , systraceMiddleware ) . use ( loggerMiddleware ) . use ( compilerMiddleware ) . use ( missingBundleMiddleware ) ; if ( configOptions . eager ) { if ( ! Array . isArray ( configOptions . eager ) && typeof configOptions . eager === 'boolean' ) { // implicitly true... // TODO: Eager loading for all platforms configOptions . eager = [ 'android' , 'ios' /* , ... potentially more? */ ] ; } configOptions . eager . forEach ( platform => { compiler . emit ( Compiler . Events . REQUEST_BUNDLE , { filename : ` ${ platform } ` , // XXX: maybe the entry bundle is arbitary platform , callback ( ) { } , } ) ; } ) ; } return httpServer ; }