33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
import path from 'path'
|
|
import findPageInSiteTree from '../../lib/find-page-in-site-tree.js'
|
|
import removeFPTFromPath from '../../lib/remove-fpt-from-path.js'
|
|
|
|
// This module adds currentProductTree to the context object for use in layouts.
|
|
export default function currentProductTree(req, res, next) {
|
|
if (!req.context.page) return next()
|
|
if (req.context.page.documentType === 'homepage') return next()
|
|
|
|
// We need this so we can fall back to English if localized pages are out of sync.
|
|
req.context.currentEnglishTree = req.context.siteTree.en[req.context.currentVersion]
|
|
|
|
const currentRootTree =
|
|
req.context.siteTree[req.context.currentLanguage][req.context.currentVersion]
|
|
const currentProductPath = removeFPTFromPath(
|
|
path.posix.join(
|
|
'/',
|
|
req.context.currentLanguage,
|
|
req.context.currentVersion,
|
|
req.context.currentProduct
|
|
)
|
|
)
|
|
const currentProductTree = findPageInSiteTree(
|
|
currentRootTree,
|
|
req.context.currentEnglishTree,
|
|
currentProductPath
|
|
)
|
|
|
|
req.context.currentProductTree = currentProductTree
|
|
|
|
return next()
|
|
}
|