spring-security/lib/antora/extensions/version-fix.js

37 lines
1.6 KiB
JavaScript

'use strict'
/**
* The purpose of this extension is to fix invalid metadata saved to either antora.yml or gradle.properties in certain
* tags. This invalid metadata prevents Antora from classifying the component versions properly.
*
* This extension addresses with the following cases:
*
* . the boolean value on the prerelease key is incorrectly quoted
* . the prerelease tag is set to true for a GA version
* . the value of the name key is empty
* . the value of the displayVersion key doesn't match the actual version
* . the -SNAPSHOT suffix is appended to the value of the version key instead of the value of the prerelease key
*
* This extension should be listed directly after @antora/collector-extension.
*/
module.exports.register = function () {
this.once('contentAggregated', ({ contentAggregate }) => {
contentAggregate.forEach((componentVersionBucket) => {
if (componentVersionBucket.prerelease === 'true') componentVersionBucket.prerelease = true
if (!componentVersionBucket.name && componentVersionBucket.displayVersion === 5.6) {
componentVersionBucket.name = 'ROOT'
componentVersionBucket.version = '5.6.0-RC1'
delete componentVersionBucket.displayVersion
componentVersionBucket.prerelease = true
}
else if (componentVersionBucket.version === '5.6.1') {
delete componentVersionBucket.prerelease
}
else if (typeof componentVersionBucket.prerelease === 'string' && componentVersionBucket.prerelease !== '-SNAPSHOT') {
componentVersionBucket.version += componentVersionBucket.prerelease
componentVersionBucket.prerelease = true
}
})
})
}