summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Reuben Tier <64310361+TheOtterlord@users.noreply.github.com> 2024-07-25 10:04:46 +0000
committerGravatar GitHub <noreply@github.com> 2024-07-25 12:04:46 +0200
commit602c5bf05de4fe5ec1ea97f8e10455485aceb05f (patch)
tree2b97fb7fef5612cfa8c9600e762867a0736363ec
parent7f26de906e87f1e8973a1f84399f23e36e506bb3 (diff)
downloadastro-602c5bf05de4fe5ec1ea97f8e10455485aceb05f.tar.gz
astro-602c5bf05de4fe5ec1ea97f8e10455485aceb05f.tar.zst
astro-602c5bf05de4fe5ec1ea97f8e10455485aceb05f.zip
Fix astro add for prerelease packages (#11548)
Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> Co-authored-by: Bjorn Lu <34116392+bluwy@users.noreply.github.com>
-rw-r--r--.changeset/violet-coats-fail.md5
-rw-r--r--packages/astro/src/cli/add/index.ts4
2 files changed, 7 insertions, 2 deletions
diff --git a/.changeset/violet-coats-fail.md b/.changeset/violet-coats-fail.md
new file mode 100644
index 000000000..0319b363f
--- /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 e452f08d6..aa4b4bba8 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<string> {
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}`;
}