@@ -19,19 +19,25 @@ const {
1919} = pathUtils
2020const featureFlags = Object . keys ( readJsonFile ( './feature-flags.json' ) )
2121
22+ // This doesn't change just because the request changes, so compute it once.
23+ const enterpriseServerVersions = Object . keys ( allVersions ) . filter ( ( version ) =>
24+ version . startsWith ( 'enterprise-server@' )
25+ )
26+
27+ const featureFlagsObject = Object . fromEntries (
28+ featureFlags . map ( ( featureFlagName ) => [ featureFlagName , process . env [ featureFlagName ] ] )
29+ )
30+
2231// Supply all route handlers with a baseline `req.context` object
2332// Note that additional middleware in middleware/index.js adds to this context object
2433export default async function contextualize ( req , res , next ) {
2534 // Ensure that we load some data only once on first request
2635 const { site, redirects, siteTree, pages : pageMap } = await warmServer ( )
2736
28- req . context = { }
37+ req . context = Object . assign ( { } , featureFlagsObject )
2938
3039 // make feature flag environment variables accessible in layouts
3140 req . context . process = { env : { } }
32- featureFlags . forEach ( ( featureFlagName ) => {
33- req . context [ featureFlagName ] = process . env [ featureFlagName ]
34- } )
3541
3642 // define each context property explicitly for code-search friendliness
3743 // e.g. searches for "req.context.page" will include results from this file
@@ -50,9 +56,7 @@ export default async function contextualize(req, res, next) {
5056 req . context . languages = languages
5157 req . context . productNames = productNames
5258 req . context . enterpriseServerReleases = enterpriseServerReleases
53- req . context . enterpriseServerVersions = Object . keys ( allVersions ) . filter ( ( version ) =>
54- version . startsWith ( 'enterprise-server@' )
55- )
59+ req . context . enterpriseServerVersions = enterpriseServerVersions
5660 req . context . redirects = redirects
5761 req . context . site = site [ req . language ] . site
5862 req . context . siteTree = siteTree
0 commit comments