@@ -24,13 +24,21 @@ module.exports = function () {
24
24
25
25
const fullProjectVersions = readdirSync (
26
26
`ember-api-docs-data/json-docs/${ p } `
27
- ) . filter ( ( v ) => v . match ( / \d + \. \d + \. \d + / ) ) ;
27
+ ) . filter ( ( v ) => ! ! semver . valid ( v ) ) ;
28
28
29
29
// 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 ) ;
34
42
35
43
const uniqueProjectVersions = [ ...new Set ( projectVersions ) ] ;
36
44
@@ -55,9 +63,18 @@ module.exports = function () {
55
63
] ;
56
64
57
65
uniqueProjectVersions . forEach ( ( uniqVersion ) => {
66
+ let isPreRelease = uniqVersion . includes ( '-' ) ;
67
+ let baseVersion = isPreRelease ? uniqVersion . split ( '-' ) [ 0 ] : uniqVersion ;
68
+
58
69
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' )
61
78
) {
62
79
return ;
63
80
}
@@ -66,14 +83,25 @@ module.exports = function () {
66
83
67
84
const sortedPatchVersions = fullProjectVersions
68
85
. 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
+ }
71
97
} )
72
98
. sort ( cmp ) ;
73
99
74
100
const highestPatchVersion =
75
101
sortedPatchVersions [ sortedPatchVersions . length - 1 ] ;
76
102
103
+ if ( ! highestPatchVersion ) return ;
104
+
77
105
const revIndex = require ( `${ __dirname } /ember-api-docs-data/rev-index/${ p } -${ highestPatchVersion } .json` ) ;
78
106
79
107
[ 'classes' , 'namespaces' , 'modules' ] . forEach ( ( entity ) => {
0 commit comments