Skip to content

Commit e21fca5

Browse files
committed
use semver
1 parent 5480b57 commit e21fca5

File tree

1 file changed

+2
-16
lines changed

1 file changed

+2
-16
lines changed

scripts/lspArtifact.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as fs from 'fs'
33
import * as crypto from 'crypto'
44
import * as path from 'path'
55
import * as os from 'os'
6+
import * as semver from 'semver'
67
import AdmZip from 'adm-zip'
78

89
interface ManifestContent {
@@ -54,21 +55,6 @@ async function ensureDirectoryExists(dirPath: string): Promise<void> {
5455
}
5556
}
5657

57-
function compareVersions(v1: string, v2: string): number {
58-
const parts1 = v1.split('.').map(Number)
59-
const parts2 = v2.split('.').map(Number)
60-
61-
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
62-
const part1 = parts1[i] || 0
63-
const part2 = parts2[i] || 0
64-
65-
if (part1 > part2) return 1
66-
if (part1 < part2) return -1
67-
}
68-
69-
return 0
70-
}
71-
7258
export async function downloadLanguageServer(): Promise<void> {
7359
const tempDir = path.join(os.tmpdir(), 'amazonq-download-temp')
7460
const resourcesDir = path.join(__dirname, '../packages/amazonq/resources/language-server')
@@ -102,7 +88,7 @@ export async function downloadLanguageServer(): Promise<void> {
10288

10389
const latestVersion = manifest.versions
10490
.filter((v) => !v.isDelisted)
105-
.sort((a, b) => compareVersions(b.serverVersion, a.serverVersion))[0]
91+
.sort((a, b) => semver.compare(b.serverVersion, a.serverVersion))[0]
10692

10793
if (!latestVersion) {
10894
throw new Error('No valid version found in manifest')

0 commit comments

Comments
 (0)