feat: add "lts" version option (#97)

This commit is contained in:
Sebastian
2025-05-12 18:23:36 +02:00
committed by GitHub
parent 95bbb87724
commit a1496dd8d9
6 changed files with 52 additions and 4 deletions

16
dist/main.mjs vendored
View File

@@ -36389,6 +36389,10 @@ function parseVersionRange(version) {
range: "latest",
kind: "stable"
};
if (version === "lts") return {
range: "latest",
kind: "lts"
};
if (GIT_HASH_RE.test(version)) return {
range: version,
kind: "canary"
@@ -36410,6 +36414,7 @@ function getDenoVersionFromFile(versionFilePath) {
function resolveVersion({ range, kind }) {
if (kind === "canary") return resolveCanary(range);
else if (kind === "rc") return resolveReleaseCandidate();
else if (kind === "lts") return resolveLTS();
else return resolveRelease(range);
}
async function resolveCanary(range) {
@@ -36436,6 +36441,16 @@ async function resolveReleaseCandidate() {
kind: "rc"
};
}
async function resolveLTS() {
const res = await fetchWithRetries("https://dl.deno.land/release-lts-latest.txt");
if (res.status !== 200) throw new Error("Failed to fetch LTS version info from dl.deno.land. Please try again later.");
const version = import_semver.default.clean((await res.text()).trim());
if (version === null) throw new Error("Failed to parse LTS version.");
return {
version,
kind: "lts"
};
}
async function resolveRelease(range) {
if (range === "latest") {
const res = await fetchWithRetries("https://dl.deno.land/release-latest.txt");
@@ -38230,6 +38245,7 @@ async function install(version) {
url = `https://dl.deno.land/release/v${version.version}/${zip}`;
break;
case "stable":
case "lts":
url = `https://github.com/denoland/deno/releases/download/v${version.version}/${zip}`;
break;
}