1
0
mirror of synced 2025-12-22 03:16:52 -05:00
Files
docs/middleware/contextualizers/whats-new-changelog.js
Peter Bengtsson 6363640cb1 in-memory cache the changelog RSS downloads (#23582)
* in-memory cache the changelog RSS downloads

* fix tests
2021-12-11 16:52:27 -05:00

32 lines
1.2 KiB
JavaScript

import { getChangelogItems } from '../../lib/changelog.js'
import getApplicableVersions from '../../lib/get-applicable-versions.js'
export default async function whatsNewChangelog(req, res, next) {
if (!req.context.page) return next()
if (!req.context.page.changelog) return next()
const label = req.context.page.changelog.label.split(/\s+/g).join('')
// If there is no `versions` prop in the changelog frontmatter, assume the changelog should display in all versions.
if (req.context.page.changelog.versions) {
const changelogVersions = getApplicableVersions(req.context.page.changelog.versions)
// If the current version is not included, do not display a changelog.
if (!changelogVersions.includes(req.context.currentVersion)) {
return next()
}
}
const labelUrls = {
education: 'https://github.blog/category/community/education',
enterprise: 'https://github.blog/category/enterprise/',
}
req.context.changelogUrl = labelUrls[label] || `https://github.blog/changelog/label/${label}`
req.context.whatsNewChangelog = await getChangelogItems(
req.context.page.changelog.prefix,
req.context.changelogUrl
)
return next()
}