const express = require('express'); require('express-async-errors'); const bodyParser = require('body-parser'); const basicAuth = require('express-basic-auth'); const webpack = require('webpack'); const path = require('path'); const getConfig = require('server/config'); const { getLogger } = require('server/modules/logger'); const { getDBConnection } = require('server/modules/db'); const { apiRoutes } = require('server/routes'); const webpackConfig = require('../../webpack.config'); function setupDevServer(config, db, logger, app) { if (!config.__DEV__ || process.env.SKIP_APP === 'true') { return; } const compiler = webpack(webpackConfig); const serverOptions = { quiet: true, publicPath: webpackConfig.output.publicPath, hot: true }; // eslint-disable-next-line global-require app.use(require('webpack-dev-middleware')(compiler, serverOptions)); // eslint-disable-next-line global-require app.use(require('webpack-hot-middleware')(compiler)); } function clientRoute(config, db, logger, app) { app.use(express.static(path.resolve(__dirname, '../../static'))); } function getUnauthorisedResponse(req) { let message = 'No credentials provided'; if (req.auth) { message = `Credentials ${req.auth.user}:${req.auth.password} rejected`; } return `