whole_func_string: function setup() {
  	const app = express();
  
  	// for nginx
  	app.enable( 'trust proxy' );
  
  	app.use( cookieParser() );
  	app.use( userAgent.express() );
  
  	if ( 'development' === process.env.NODE_ENV ) {
  		// use legacy CSS rebuild system if css-hot-reload is disabled
  		if ( ! config.isEnabled( 'css-hot-reload' ) ) {
  			// only do `build` upon every request in "development"
  			app.use( build() );
  		}
  
  		require( 'bundler' )( app );
  
  		// setup logger
  		app.use( morgan( 'dev' ) );
  
  		if ( config.isEnabled( 'wpcom-user-bootstrap' ) ) {
  			if ( config( 'wordpress_logged_in_cookie' ) ) {
  				const username = config( 'wordpress_logged_in_cookie' ).split( '%7C' )[ 0 ];
  				console.info( chalk.cyan( '\nYour logged in cookie set to user: ' + username ) );
  
  				app.use( function( req, res, next ) {
  					if ( ! req.cookies.wordpress_logged_in ) {
  						req.cookies.wordpress_logged_in = config( 'wordpress_logged_in_cookie' );
  					}
  					next();
  				} );
  			} else {
  				console.info(
  					chalk.red(
  						'\nYou need to set `wordpress_logged_in_cookie` in secrets.json' +
  							' for wpcom-user-bootstrap to work in development.'
  					)
  				);
  			}
  		}
  	} else {
  		// setup logger
  		app.use( morgan( 'combined' ) );
  	}
  
  	app.use( pwa() );
  
  	// attach the static file server to serve the `public` dir
  	app.use( '/calypso', express.static( path.resolve( __dirname, '..', '..', 'public' ) ) );
  
  	// loaded when we detect stats blockers - see lib/analytics/index.js
  	app.get( '/nostats.js', function( request, response ) {
  		analytics.tracks.recordEvent(
  			'calypso_stats_blocked',
  			{
  				do_not_track: request.headers.dnt,
  			},
  			request
  		);
  		response.setHeader( 'content-type', 'application/javascript' );
  		response.end( "console.log('Stats are disabled');" );
  	} );
  
  	// serve files when not in production so that the source maps work correctly
  	if ( 'development' === process.env.NODE_ENV ) {
  		app.use( '/assets', express.static( path.resolve( __dirname, '..', '..', 'assets' ) ) );
  		app.use( '/client', express.static( path.resolve( __dirname, '..', '..', 'client' ) ) );
  	}
  
  	if ( config.isEnabled( 'devdocs' ) ) {
  		app.use( require( 'devdocs' )() );
  	}
  
  	if ( config.isEnabled( 'desktop' ) ) {
  		app.use(
  			'/desktop',
  			express.static( path.resolve( __dirname, '..', '..', '..', 'public_desktop' ) )
  		);
  	}
  
  	app.use( require( 'api' )() );
  
  	// attach the pages module
  	app.use( pages() );
  
  	return app;
  }
func_code_string: function setup() {
  	const app = express();
  
  	// for nginx
  	app.enable( 'trust proxy' );
  
  	app.use( cookieParser() );
  	app.use( userAgent.express() );
  
  	if ( 'development' === process.env.NODE_ENV ) {
  		// use legacy CSS rebuild system if css-hot-reload is disabled
  		if ( ! config.isEnabled( 'css-hot-reload' ) ) {
  			// only do `build` upon every request in "development"
  			app.use( build() );
  		}
  
  		require( 'bundler' )( app );
  
  		// setup logger
  		app.use( morgan( 'dev' ) );
  
  		if ( config.isEnabled( 'wpcom-user-bootstrap' ) ) {
  			if ( config( 'wordpress_logged_in_cookie' ) ) {
  				const username = config( 'wordpress_logged_in_cookie' ).split( '%7C' )[ 0 ];
  				console.info( chalk.cyan( '\nYour logged in cookie set to user: ' + username ) );
  
  				app.use( function( req, res, next ) {
  					if ( ! req.cookies.wordpress_logged_in ) {
  						req.cookies.wordpress_logged_in = config( 'wordpress_logged_in_cookie' );
  					}
  					next();
  				} );
  			} else {
  				console.info(
  					chalk.red(
  						'\nYou need to set `wordpress_logged_in_cookie` in secrets.json' +
  							' for wpcom-user-bootstrap to work in development.'
  					)
  				);
  			}
  		}
  	} else {
  		// setup logger
  		app.use( morgan( 'combined' ) );
  	}
  
  	app.use( pwa() );
  
  	// attach the static file server to serve the `public` dir
  	app.use( '/calypso', express.static( path.resolve( __dirname, '..', '..', 'public' ) ) );
  
  	// loaded when we detect stats blockers - see lib/analytics/index.js
  	app.get( '/nostats.js', function( request, response ) {
  		analytics.tracks.recordEvent(
  			'calypso_stats_blocked',
  			{
  				do_not_track: request.headers.dnt,
  			},
  			request
  		);
  		response.setHeader( 'content-type', 'application/javascript' );
  		response.end( "console.log('Stats are disabled');" );
  	} );
  
  	// serve files when not in production so that the source maps work correctly
  	if ( 'development' === process.env.NODE_ENV ) {
  		app.use( '/assets', express.static( path.resolve( __dirname, '..', '..', 'assets' ) ) );
  		app.use( '/client', express.static( path.resolve( __dirname, '..', '..', 'client' ) ) );
  	}
  
  	if ( config.isEnabled( 'devdocs' ) ) {
  		app.use( require( 'devdocs' )() );
  	}
  
  	if ( config.isEnabled( 'desktop' ) ) {
  		app.use(
  			'/desktop',
  			express.static( path.resolve( __dirname, '..', '..', '..', 'public_desktop' ) )
  		);
  	}
  
  	app.use( require( 'api' )() );
  
  	// attach the pages module
  	app.use( pages() );
  
  	return app;
  }
func_documentation_string: Returns the server HTTP request handler "app".
  @returns {object} The express app
  @api public