1
0
Fork 0

Sort using semver

This commit is contained in:
Alan Plum 2016-05-03 13:41:11 +02:00
parent 6f21b59b75
commit 0ef698a28b
No known key found for this signature in database
GPG Key ID: 8ED72A9A323B6EFD
1 changed files with 2 additions and 56 deletions

View File

@ -103,57 +103,6 @@ var compareApps = function(l, r) {
return 0;
};
////////////////////////////////////////////////////////////////////////////////
/// @brief comparator for versions
////////////////////////////////////////////////////////////////////////////////
var compareVersions = function (a, b) {
var i;
if (a === b) {
return 0;
}
// error handling
if (typeof a !== "string") {
return -1;
}
if (typeof b !== "string") {
return 1;
}
var aComponents = a.split(".");
var bComponents = b.split(".");
var len = Math.min(aComponents.length, bComponents.length);
// loop while the components are equal
for (i = 0; i < len; i++) {
// A bigger than B
if (parseInt(aComponents[i], 10) > parseInt(bComponents[i], 10)) {
return 1;
}
// B bigger than A
if (parseInt(aComponents[i], 10) < parseInt(bComponents[i], 10)) {
return -1;
}
}
// If one's a prefix of the other, the longer one is bigger one.
if (aComponents.length > bComponents.length) {
return 1;
}
if (aComponents.length < bComponents.length) {
return -1;
}
// Otherwise they are the same.
return 0;
};
////////////////////////////////////////////////////////////////////////////////
/// @brief updates the fishbowl from a zip archive
////////////////////////////////////////////////////////////////////////////////
@ -334,7 +283,7 @@ var search = function (name) {
function extractMaxVersion(matchEngine, versionDoc) {
let serverVersion = plainServerVersion();
let versions = Object.keys(versionDoc);
versions.sort(compareVersions).reverse();
versions.sort(semver.compare).reverse();
for (let version of versions) {
if (matchEngine) {
@ -544,7 +493,7 @@ var info = function (name) {
var header = false;
var versions = Object.keys(desc.versions);
versions.sort(compareVersions);
versions.sort(semver.compare).reverse();
versions.forEach(function (v) {
var version = desc.versions[v];
@ -583,9 +532,6 @@ exports.search = search;
exports.searchJson = searchJson;
exports.update = update;
// Temporary export to avoid breaking the client
exports.compareVersions = compareVersions;
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------