Skip to content

Commit 485c2f0

Browse files
apatel369bluwyflorian-lefebvre
authored
fix(create-astro): use CLI version tag to determine astro version (#12529)
Co-authored-by: Bjorn Lu <[email protected]> Co-authored-by: Florian Lefebvre <[email protected]>
1 parent cb1a168 commit 485c2f0

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

.changeset/selfish-bulldogs-jog.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'create-astro': patch
3+
---
4+
5+
Fixes an issue where installing Astro beta using `create-astro` displays the wrong Astro version in the installation messages.

packages/create-astro/src/actions/context.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,24 @@ export interface Context {
3333
tasks: Task[];
3434
}
3535

36+
function getPackageTag(packageSpecifier: string | undefined): string | undefined {
37+
switch (packageSpecifier) {
38+
case 'alpha':
39+
case 'beta':
40+
case 'rc':
41+
return packageSpecifier;
42+
// Will fallback to latest
43+
case undefined:
44+
default:
45+
return undefined;
46+
}
47+
}
48+
3649
export async function getContext(argv: string[]): Promise<Context> {
50+
const packageSpecifier = argv
51+
.find((argItem) => /^(astro|create-astro)@/.exec(argItem))
52+
?.split('@')[1];
53+
3754
const flags = arg(
3855
{
3956
'--template': String,
@@ -93,7 +110,12 @@ export async function getContext(argv: string[]): Promise<Context> {
93110
prompt,
94111
packageManager,
95112
username: getName(),
96-
version: getVersion(packageManager, 'astro', process.env.ASTRO_VERSION),
113+
version: getVersion(
114+
packageManager,
115+
'astro',
116+
getPackageTag(packageSpecifier),
117+
process.env.ASTRO_VERSION,
118+
),
97119
skipHouston,
98120
fancy,
99121
add,

packages/create-astro/src/messages.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ export const getName = () =>
5151
});
5252
});
5353

54-
export const getVersion = (packageManager: string, packageName: string, fallback = '') =>
54+
export const getVersion = (packageManager: string, packageName: string, packageTag = 'latest', fallback = '') =>
5555
new Promise<string>(async (resolve) => {
5656
let registry = await getRegistry(packageManager);
57-
const { version } = await fetch(`${registry}/${packageName}/latest`, {
57+
const { version } = await fetch(`${registry}/${packageName}/${packageTag}`, {
5858
redirect: 'follow',
5959
})
6060
.then((res) => res.json())

0 commit comments

Comments
 (0)