From 602c5bf05de4fe5ec1ea97f8e10455485aceb05f Mon Sep 17 00:00:00 2001 From: Reuben Tier <64310361+TheOtterlord@users.noreply.github.com> Date: Thu, 25 Jul 2024 10:04:46 +0000 Subject: [PATCH] Fix astro add for prerelease packages (#11548) Co-authored-by: Florian Lefebvre Co-authored-by: Bjorn Lu <34116392+bluwy@users.noreply.github.com> --- .changeset/violet-coats-fail.md | 5 +++++ packages/astro/src/cli/add/index.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/violet-coats-fail.md diff --git a/.changeset/violet-coats-fail.md b/.changeset/violet-coats-fail.md new file mode 100644 index 0000000000..0319b363f1 --- /dev/null +++ b/.changeset/violet-coats-fail.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes `astro add` for packages with only prerelease versions diff --git a/packages/astro/src/cli/add/index.ts b/packages/astro/src/cli/add/index.ts index e452f08d68..aa4b4bba83 100644 --- a/packages/astro/src/cli/add/index.ts +++ b/packages/astro/src/cli/add/index.ts @@ -691,9 +691,9 @@ async function convertIntegrationsToInstallSpecifiers( async function resolveRangeToInstallSpecifier(name: string, range: string): Promise { const versions = await fetchPackageVersions(name); if (versions instanceof Error) return name; - // Filter out any prerelease versions + // Filter out any prerelease versions, but fallback if there are no stable versions const stableVersions = versions.filter((v) => !v.includes('-')); - const maxStable = maxSatisfying(stableVersions, range); + const maxStable = maxSatisfying(stableVersions.length !== 0 ? stableVersions : versions, range); return `${name}@^${maxStable}`; }