22 lines
1.0 KiB
JavaScript
Executable File
22 lines
1.0 KiB
JavaScript
Executable File
const readJsonFile = require('../read-json-file')
|
|
const developerRedirects = readJsonFile('./lib/redirects/static/developer.json')
|
|
const { latest } = require('../../lib/enterprise-server-releases')
|
|
const latestDevRedirects = {}
|
|
|
|
// Replace hardcoded 'latest' with real value in the redirected path
|
|
Object.entries(developerRedirects).forEach(([oldPath, newPath]) => {
|
|
latestDevRedirects[oldPath] = newPath.replace('enterprise-server@latest', `enterprise-server@${latest}`)
|
|
})
|
|
|
|
// This function runs at server warmup and precompiles possible redirect routes.
|
|
// It outputs them in key-value pairs within a neat Javascript object: { oldPath: newPath }
|
|
module.exports = async function precompileRedirects (pageList) {
|
|
const allRedirects = Object.assign({}, latestDevRedirects)
|
|
|
|
// CURRENT PAGES PERMALINKS AND FRONTMATTER
|
|
// create backwards-compatible old paths for page permalinks and frontmatter redirects
|
|
await Promise.all(pageList.map(async (page) => Object.assign(allRedirects, page.buildRedirects())))
|
|
|
|
return allRedirects
|
|
}
|