@@ -24,13 +24,21 @@ module.exports = function () {
2424
2525 const fullProjectVersions = readdirSync (
2626 `ember-api-docs-data/json-docs/${ p } `
27- ) . filter ( ( v ) => v . match ( / \d + \. \d + \. \d + / ) ) ;
27+ ) . filter ( ( v ) => ! ! semver . valid ( v ) ) ;
2828
2929 // add landing page for each of the projects versions
30- const projectVersions = fullProjectVersions . map ( ( v ) => {
31- let [ , major , minor ] = v . match ( / ( \d + ) \. ( \d + ) \. \d + / ) ;
32- return `${ major } .${ minor } ` ;
33- } ) ; // uniq
30+ const projectVersions = fullProjectVersions
31+ . map ( ( v ) => {
32+ let parsed = semver . parse ( v ) ;
33+ if ( ! parsed ) return null ;
34+ if ( parsed . prerelease && parsed . prerelease . length > 0 ) {
35+ return `${ parsed . major } .${ parsed . minor } .${
36+ parsed . patch
37+ } -${ parsed . prerelease . join ( '.' ) } `;
38+ }
39+ return `${ parsed . major } .${ parsed . minor } ` ;
40+ } )
41+ . filter ( Boolean ) ;
3442
3543 const uniqueProjectVersions = [ ...new Set ( projectVersions ) ] ;
3644
@@ -55,9 +63,18 @@ module.exports = function () {
5563 ] ;
5664
5765 uniqueProjectVersions . forEach ( ( uniqVersion ) => {
66+ let isPreRelease = uniqVersion . includes ( '-' ) ;
67+ let baseVersion = isPreRelease ? uniqVersion . split ( '-' ) [ 0 ] : uniqVersion ;
68+
5869 if (
59- ! oldVersions . includes ( uniqVersion ) &&
60- ! semver . gte ( `${ uniqVersion } .0` , '6.0.0' )
70+ ! oldVersions . includes ( baseVersion ) &&
71+ ! semver . valid ( `${ baseVersion } .0` )
72+ ) {
73+ return ;
74+ }
75+ if (
76+ ! oldVersions . includes ( baseVersion ) &&
77+ ! semver . gte ( `${ baseVersion } .0` , '6.0.0' )
6178 ) {
6279 return ;
6380 }
@@ -66,14 +83,25 @@ module.exports = function () {
6683
6784 const sortedPatchVersions = fullProjectVersions
6885 . filter ( ( projectVersion ) => {
69- // console.log("comparing", projectVersion, uniqVersion, semver.satisfies(projectVersion, uniqVersion))
70- return semver . satisfies ( projectVersion , uniqVersion ) ;
86+ let parsed = semver . parse ( projectVersion ) ;
87+ if ( ! parsed ) return false ;
88+ if ( isPreRelease ) {
89+ return (
90+ `${ parsed . major } .${ parsed . minor } .${
91+ parsed . patch
92+ } -${ parsed . prerelease . join ( '.' ) } ` === uniqVersion
93+ ) ;
94+ } else {
95+ return `${ parsed . major } .${ parsed . minor } ` === uniqVersion ;
96+ }
7197 } )
7298 . sort ( cmp ) ;
7399
74100 const highestPatchVersion =
75101 sortedPatchVersions [ sortedPatchVersions . length - 1 ] ;
76102
103+ if ( ! highestPatchVersion ) return ;
104+
77105 const revIndex = require ( `${ __dirname } /ember-api-docs-data/rev-index/${ p } -${ highestPatchVersion } .json` ) ;
78106
79107 [ 'classes' , 'namespaces' , 'modules' ] . forEach ( ( entity ) => {
0 commit comments