forked from github/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
current-product-tree.js
20 lines (15 loc) · 1.02 KB
/
current-product-tree.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const path = require('path')
const findPageInSiteTree = require('../../lib/find-page-in-site-tree')
const removeFPTFromPath = require('../../lib/remove-fpt-from-path')
// This module adds currentProductTree to the context object for use in layouts.
module.exports = 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()
}