34 lines
1010 B
JavaScript
34 lines
1010 B
JavaScript
import { uniq } from 'lodash-es'
|
|
|
|
export default function earlyAccessContext(req, res, next) {
|
|
if (process.env.NODE_ENV === 'production') {
|
|
return next(404)
|
|
}
|
|
|
|
// Get a list of all hidden pages per version
|
|
const earlyAccessPageLinks = uniq(
|
|
Object.values(req.context.pages)
|
|
.filter(
|
|
(page) =>
|
|
page.hidden &&
|
|
page.relativePath.startsWith('early-access') &&
|
|
!page.relativePath.endsWith('index.md')
|
|
)
|
|
.map((page) => page.permalinks)
|
|
.flat()
|
|
)
|
|
// Get links for the current version
|
|
.filter((permalink) => req.context.currentVersion === permalink.pageVersion)
|
|
.sort()
|
|
// Create Markdown links
|
|
.map((permalink) => `- [${permalink.title}](${permalink.href})`)
|
|
|
|
// Add to the rendering context
|
|
// This is only used in the separate EA repo on local development
|
|
req.context.earlyAccessPageLinks = earlyAccessPageLinks.length
|
|
? earlyAccessPageLinks.join('\n')
|
|
: '_None for this version!_'
|
|
|
|
return next()
|
|
}
|