summaryrefslogtreecommitdiff
path: root/packages/create-astro/src/messages.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/create-astro/src/messages.ts')
-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');