in src/amo/server/base.js [57:105]
export function getPageProps({ store, req, res, config }) {
const isDeployed = config.get('isDeployed');
// Get SRI for deployed services only.
const sriData = isDeployed
? JSON.parse(
fs.readFileSync(path.join(config.get('basePath'), 'dist/sri.json')),
)
: {};
// Check the lang supplied by res.locals.lang for validity
// or fall-back to the default.
const lang = isValidLang(res.locals.lang)
? res.locals.lang
: config.get('defaultLang');
const dir = getDirection(lang);
store.dispatch(setLang(lang));
if (res.locals.clientApp) {
store.dispatch(setClientApp(res.locals.clientApp));
} else if (req && req.url) {
log.warn(`No clientApp for this URL: ${req.url}`);
} else {
log.warn('No clientApp (error)');
}
if (res.locals.userAgent) {
store.dispatch(setUserAgent(res.locals.userAgent));
} else {
log.debug('No userAgent found in request headers.');
}
const regionCode = req.get(REGION_CODE_HEADER);
if (regionCode) {
store.dispatch(setRegionCode(regionCode));
} else {
log.debug(`No ${REGION_CODE_HEADER} found in request headers.`);
}
return {
assets: webpackIsomorphicTools.assets(),
htmlLang: lang,
htmlDir: dir,
includeSri: isDeployed,
sriData,
// A DNT header set to "1" means Do Not Track
trackingEnabled:
convertBoolean(config.get('trackingEnabled')) &&
req.header('dnt') !== '1',
};
}