diff options
author | 2023-07-01 06:24:36 +0800 | |
---|---|---|
committer | 2023-06-30 17:24:36 -0500 | |
commit | 1170877b51aaa13203e8c488dcf4e39d1b5553ee (patch) | |
tree | 1694e405e01bce29366f8afb43accbc983370947 /packages/create-astro/src/messages.ts | |
parent | 2172dd4f0dd8f87d1adbc5ae90f44724e66eb964 (diff) | |
download | astro-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 'packages/create-astro/src/messages.ts')
-rw-r--r-- | packages/create-astro/src/messages.ts | 18 |
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'); |