1
0
mirror of synced 2025-12-20 10:28:40 -05:00
Files
docs/script/helpers/remove-deprecated-frontmatter.js
2021-07-19 22:36:15 +00:00

43 lines
1.6 KiB
JavaScript

export default function removeDeprecatedFrontmatter (file, frontmatterVersions, releaseToDeprecate, nextOldestRelease) {
// skip files with no Enterprise Server versions frontmatter
if (!frontmatterVersions) return
if (!frontmatterVersions.ghes) return
const ghesRange = frontmatterVersions.ghes
// skip files with versions frontmatter that already applies to all enterprise-server releases
if (ghesRange === '*') return
// if the release to deprecate is 2.13, and the FM is either '>=2.13', '>2.13', or '>=2.14',
// we can safely change the FM to ghes: '*'
const appliesToAllSupportedGhesReleases = (
ghesRange === `>=${releaseToDeprecate}` ||
ghesRange === `>${releaseToDeprecate}` ||
ghesRange === `>=${nextOldestRelease}`
)
if (appliesToAllSupportedGhesReleases) {
frontmatterVersions.ghes = '*'
return
}
// if the release to deprecate is 2.13, and the FM is either '=2.13', '<2.13', '<=2.13', or '<2.14',
// delete (aka deprecate) the ghes frontmatter property.
const appliesToNoSupportedGhesReleases = (
ghesRange === `=${releaseToDeprecate}` ||
ghesRange === `<${releaseToDeprecate}` ||
ghesRange === `<=${releaseToDeprecate}` ||
ghesRange === `<${nextOldestRelease}`
)
if (appliesToNoSupportedGhesReleases) {
// Throw a warning if there are no other frontmatter versions specified.
if (Object.keys(frontmatterVersions).length === 1) {
console.log(`Warning! ${file} has frontmatter versioning that will make it never appear when ${releaseToDeprecate} is deprecated. The article should probably be removed.`)
return
}
delete frontmatterVersions.ghes
}
}