Skip to content

Commit 8d51d4e

Browse files
committed
Fixed logic to figure out which versions to list in WordPress.
1 parent 3097d1e commit 8d51d4e

File tree

2 files changed

+23
-30
lines changed

2 files changed

+23
-30
lines changed

src/wordpress.js

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -351,25 +351,18 @@ var wordpress = module.exports = {
351351
}
352352

353353
if ( !id ) {
354-
return fn( null, {
355-
listed: [],
356-
latest: null
357-
});
354+
return fn( null, [] );
358355
}
359356

360-
getMeta( id, "versions", this.parallel() );
361-
getMeta( id, "latest", this.parallel() );
357+
getMeta( id, "versions", this );
362358
},
363359

364-
function( error, versions, latest ) {
360+
function( error, versions ) {
365361
if ( error ) {
366362
return fn( error );
367363
}
368364

369-
fn( null, {
370-
listed: versions ? JSON.parse( versions ) : [],
371-
latest: latest
372-
});
365+
fn( null, versions ? JSON.parse( versions ) : [] );
373366
}
374367
);
375368
}),

src/wp-update.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,32 +57,32 @@ actions.addRelease = function( data, fn ) {
5757
return fn( error );
5858
}
5959

60-
// this version is the latest if:
61-
// - this is the first version (there is no existing latest version)
62-
// - this version is stable and greater than the existing latest version
63-
// - both versions are unstable and the current version is greater
64-
var mainPage,
65-
isLatest = !versions.latest ||
66-
((isStable( package.version ) || !isStable( versions.latest )) &&
67-
semver.gt( package.version, versions.latest )),
68-
latest = isLatest ? package.version : versions.latest,
69-
listed = versions.listed
60+
var mainPage, latest,
61+
listed = versions
7062
.concat( package.version )
71-
.sort( semver.compare );
72-
73-
// if the latest is not stable, then all versions are not stable
74-
// if the latest is stable, remove any unstable versions less than latest
75-
if ( isStable( latest ) ) {
76-
listed = listed.filter(function( version ) {
77-
return isStable( version ) || semver.gt( version, latest );
78-
});
63+
.sort( semver.compare )
64+
.reverse()
65+
.filter(function( version ) {
66+
if ( latest ) {
67+
return isStable( version );
68+
}
69+
if ( isStable( version ) ) {
70+
latest = version;
71+
}
72+
return true;
73+
})
74+
.reverse();
75+
76+
// no stable relases yet, show latest pre-release
77+
if ( !latest ) {
78+
latest = listed[ listed.length - 1 ];
7979
}
8080

8181
this.parallel()( null, listed );
8282
this.parallel()( null, latest );
8383
this.parallel()( null, pageDetails );
8484

85-
if ( isLatest ) {
85+
if ( latest === package.version ) {
8686
mainPage = Object.create( pageDetails );
8787
mainPage.name = package.name;
8888
mainPage.draft = true;

0 commit comments

Comments
 (0)