summaryrefslogtreecommitdiff
path: root/packages/create-astro/src
diff options
context:
space:
mode:
authorGravatar 金成 <32624612+jc1144096387@users.noreply.github.com> 2023-07-01 06:24:36 +0800
committerGravatar GitHub <noreply@github.com> 2023-06-30 17:24:36 -0500
commit1170877b51aaa13203e8c488dcf4e39d1b5553ee (patch)
tree1694e405e01bce29366f8afb43accbc983370947 /packages/create-astro/src
parent2172dd4f0dd8f87d1adbc5ae90f44724e66eb964 (diff)
downloadastro-1170877b51aaa13203e8c488dcf4e39d1b5553ee.tar.gz
astro-1170877b51aaa13203e8c488dcf4e39d1b5553ee.tar.zst
astro-1170877b51aaa13203e8c488dcf4e39d1b5553ee.zip
Fix multiple `create-astro` registry issues (#7539)
* fix: getVersion Error when registry ends with '/' * Update .changeset/old-seahorses-fold.md * Update .changeset/old-seahorses-fold.md * refactor: cleanup registry logic * chore: update changeset * fix(create-astro): update registry logic to rely on `fetch` * chore: update changeset * chore: update lockfile * Update old-seahorses-fold.md --------- Co-authored-by: jincheng32537 <jincheng32537@hundsun.com> Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> Co-authored-by: Nate Moore <nate@astro.build>
Diffstat (limited to '')
-rw-r--r--packages/create-astro/src/messages.ts18
1 files changed, 6 insertions, 12 deletions
diff --git a/packages/create-astro/src/messages.ts b/packages/create-astro/src/messages.ts
index 4a51e0f80..edf22f5f6 100644
--- a/packages/create-astro/src/messages.ts
+++ b/packages/create-astro/src/messages.ts
@@ -3,7 +3,7 @@ import { color, label, say as houston, spinner as load } from '@astrojs/cli-kit'
import { align, sleep } from '@astrojs/cli-kit/utils';
import { execa } from 'execa';
import { exec } from 'node:child_process';
-import { get } from 'node:https';
+import fetch from 'node-fetch-native';
import stripAnsi from 'strip-ansi';
import detectPackageManager from 'which-pm-runs';
@@ -15,7 +15,7 @@ async function getRegistry(): Promise<string> {
const packageManager = detectPackageManager()?.name || 'npm';
try {
const { stdout } = await execa(packageManager, ['config', 'get', 'registry']);
- return stdout || 'https://registry.npmjs.org';
+ return stdout?.trim()?.replace(/\/$/, '') || 'https://registry.npmjs.org';
} catch (e) {
return 'https://registry.npmjs.org';
}
@@ -81,16 +81,10 @@ let v: string;
export const getVersion = () =>
new Promise<string>(async (resolve) => {
if (v) return resolve(v);
- const registry = await getRegistry();
- get(`${registry}/astro/latest`, (res) => {
- let body = '';
- res.on('data', (chunk) => (body += chunk));
- res.on('end', () => {
- const { version } = JSON.parse(body);
- v = version;
- resolve(version);
- });
- });
+ let registry = await getRegistry();
+ const { version } = await fetch(`${registry}/astro/latest`, { redirect: 'follow' }).then(res => res.json());
+ v = version;
+ resolve(version);
});
export const log = (message: string) => stdout.write(message + '\n');