2
0

version-fix.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict'
  2. /**
  3. * The purpose of this extension is to fix invalid metadata saved to either antora.yml or gradle.properties in certain
  4. * tags. This invalid metadata prevents Antora from classifying the component versions properly.
  5. *
  6. * This extension addresses with the following cases:
  7. *
  8. * . the boolean value on the prerelease key is incorrectly quoted
  9. * . the prerelease tag is set to true for a GA version
  10. * . the value of the name key is empty
  11. * . the value of the displayVersion key doesn't match the actual version
  12. * . the -SNAPSHOT suffix is appended to the value of the version key instead of the value of the prerelease key
  13. *
  14. * This extension should be listed directly after @antora/collector-extension.
  15. */
  16. module.exports.register = function () {
  17. this.once('contentAggregated', ({ contentAggregate }) => {
  18. contentAggregate.forEach((componentVersionBucket) => {
  19. if (componentVersionBucket.prerelease === 'true') componentVersionBucket.prerelease = true
  20. if (!componentVersionBucket.name && componentVersionBucket.displayVersion === 5.6) {
  21. componentVersionBucket.name = 'ROOT'
  22. componentVersionBucket.version = '5.6.0-RC1'
  23. delete componentVersionBucket.displayVersion
  24. componentVersionBucket.prerelease = true
  25. }
  26. else if (componentVersionBucket.version === '5.6.1') {
  27. delete componentVersionBucket.prerelease
  28. }
  29. else if (typeof componentVersionBucket.prerelease === 'string' && componentVersionBucket.prerelease !== '-SNAPSHOT') {
  30. componentVersionBucket.version += componentVersionBucket.prerelease
  31. componentVersionBucket.prerelease = true
  32. }
  33. })
  34. })
  35. }