in src/server/server.ts [55:135]
origin: corsOrigin(),
};
app.use(cors(corsOptions));
app.use(loggingMiddleware);
app.use(bodyParser.urlencoded({ extended: true }));
const stage =
process.env.stage === 'CODE' ? 'CODE' : process.env.stage === 'DEV' ? 'DEV' : 'PROD';
// Initialise dependencies
const [
channelSwitches,
superModeArticles,
articleEpicTests,
liveblogEpicTests,
ampEpicTests,
choiceCardAmounts,
tickerData,
productPrices,
bannerTests,
bannerDeployTimes,
headerTests,
bannerDesigns,
gutterLiveblogTests,
] = await Promise.all([
buildChannelSwitchesReloader(),
buildSuperModeArticlesReloader(),
buildEpicTestsReloader(),
buildEpicLiveblogTestsReloader(),
buildAmpEpicTestsReloader(),
buildChoiceCardAmountsReloader(),
buildTickerDataReloader(stage),
buildProductPricesReloader(),
buildBannerTestsReloader(),
buildBannerDeployTimesReloader(),
buildHeaderTestsReloader(),
buildBannerDesignsReloader(),
buildGutterLiveblogTestsReloader(),
]);
const banditData = await buildBanditDataReloader(articleEpicTests, bannerTests);
const auxiaConfig = await getAuxiaRouterConfig();
// Build the routers
app.use(
buildEpicRouter(
channelSwitches,
superModeArticles,
articleEpicTests,
liveblogEpicTests,
choiceCardAmounts,
tickerData,
banditData,
),
);
app.use(
buildBannerRouter(
channelSwitches,
tickerData,
productPrices,
bannerTests,
bannerDeployTimes,
choiceCardAmounts,
bannerDesigns,
banditData,
),
);
app.use(buildHeaderRouter(channelSwitches, headerTests));
app.use('/amp', buildAmpEpicRouter(choiceCardAmounts, tickerData, ampEpicTests));
app.use(buildAuxiaProxyRouter(auxiaConfig));
app.use(buildGutterRouter(channelSwitches, gutterLiveblogTests));
// The error handling middleware must be the last middleware in the chain
// https://stackoverflow.com/questions/72227296/does-the-position-of-error-handling-middleware-matter-in-express
app.use(errorHandlingMiddleware);
app.get('/healthcheck', (req: express.Request, res: express.Response) => {