From f6947ecb49bf32d746eddedfa8ea4dd19b527d28 Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Thu, 22 Feb 2024 10:24:27 +0100 Subject: [PATCH] Derive javaVersion from downloadUrl. This ensures that `latest-ea` and `22-ea` can be cached based on the actual version number (e.g., `22.0.0`). --- dist/main/index.js | 8 +++++++- src/graalvm.ts | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/dist/main/index.js b/dist/main/index.js index 9172bc4..d588e62 100644 --- a/dist/main/index.js +++ b/dist/main/index.js @@ -93862,12 +93862,18 @@ function setUpGraalVMJDK(javaVersionOrDev) { if (javaVersionOrDev === c.VERSION_DEV) { return setUpGraalVMJDKDevBuild(); } - const javaVersion = javaVersionOrDev; + let javaVersion = javaVersionOrDev; const toolName = determineToolName(javaVersion, false); let downloadName = toolName; let downloadUrl; if (javaVersion.endsWith('-ea')) { downloadUrl = yield findLatestEABuildDownloadUrl(javaVersion); + const filename = (0, path_1.basename)(downloadUrl); + const resolvedVersion = semver.valid(semver.coerce(filename)); + if (!resolvedVersion) { + throw new Error(`Unable to determine resolved version based on '${filename}'. ${c.ERROR_REQUEST}`); + } + javaVersion = resolvedVersion; } else if (javaVersion.includes('.')) { if (semver.valid(javaVersion)) { diff --git a/src/graalvm.ts b/src/graalvm.ts index 9f5941d..5abc3b3 100644 --- a/src/graalvm.ts +++ b/src/graalvm.ts @@ -28,12 +28,20 @@ export async function setUpGraalVMJDK( if (javaVersionOrDev === c.VERSION_DEV) { return setUpGraalVMJDKDevBuild() } - const javaVersion = javaVersionOrDev + let javaVersion = javaVersionOrDev const toolName = determineToolName(javaVersion, false) let downloadName = toolName let downloadUrl: string if (javaVersion.endsWith('-ea')) { downloadUrl = await findLatestEABuildDownloadUrl(javaVersion) + const filename = basename(downloadUrl) + const resolvedVersion = semver.valid(semver.coerce(filename)) + if (!resolvedVersion) { + throw new Error( + `Unable to determine resolved version based on '${filename}'. ${c.ERROR_REQUEST}` + ) + } + javaVersion = resolvedVersion } else if (javaVersion.includes('.')) { if (semver.valid(javaVersion)) { const majorJavaVersion = semver.major(javaVersion)