mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 13:55:41 +01:00
Sorts version numbers
This commit is contained in:
parent
73b47d4592
commit
21db3aebf0
1 changed files with 29 additions and 0 deletions
|
|
@ -59,9 +59,38 @@ async function _getNpmVersions(): Promise<string[]> {
|
|||
]);
|
||||
|
||||
const validVersions = versions.filter((v) => !brokenVersions.has(v));
|
||||
|
||||
validVersions.sort((v1, v2) => -compareSemanticVersions(v1, v2));
|
||||
|
||||
return validVersions;
|
||||
}
|
||||
|
||||
function compareSemanticVersions(version1: string, version2: string): number {
|
||||
const v1 = version1.split(/[.]/);
|
||||
const v2 = version2.split(/[.]/);
|
||||
for (let i = 0; i < Math.min(v1.length, v2.length); i++) {
|
||||
const isNumber = /^\d+$/.test(v1[i]) && /^\d+$/.test(v2[i]);
|
||||
|
||||
if (isNumber) {
|
||||
const n1 = parseInt(v1[i]);
|
||||
const n2 = parseInt(v2[i]);
|
||||
if (n1 < n2) {
|
||||
return -1;
|
||||
}
|
||||
if (n1 > n2) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
const compare = v1[i].localeCompare(v2[i]);
|
||||
if (compare !== 0) {
|
||||
return compare;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return v1.length - v2.length;
|
||||
}
|
||||
|
||||
export async function getVsCodeCommitId(
|
||||
monacoEditorVersion: string
|
||||
): Promise<string | undefined> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue