in src/Utils/VersionHelper.ts [37:69]
export function compareVersions(a: string, b: string): number {
let result: number;
// Legacy: "major.minor.patch.qualifier"
// SemVer: "major.minor.patch-qualifier"
const versionA: string[] = a.split(/\.|-/g);
const versionB: string[] = b.split(/\.|-/g);
// workaround for qualifier "BUILD-SNAPSHOT" in v2.1
if (versionA.length === 5) {
versionA[3] = `${versionA[3]}-${versionA[4]}`;
}
if (versionB.length === 5) {
versionB[3] = `${versionB[3]}-${versionB[4]}`;
}
for (let i: number = 0; i < 3; i += 1) {
result = parseInt(versionA[i], 10) - parseInt(versionB[i], 10);
if (result !== 0) {
return result;
}
}
// version[3] can be undefined
const aqualRaw: string = versionA[3] || "RELEASE";
const bqualRaw: string = versionB[3] || "RELEASE";
const aqual: string = parseQualifier(aqualRaw);
const bqual: string = parseQualifier(bqualRaw);
result = qualifiers.indexOf(aqual) - qualifiers.indexOf(bqual);
if (result !== 0) {
return result;
}
return aqualRaw.localeCompare(bqualRaw);
}