aboutsummaryrefslogtreecommitdiff
path: root/packages/create-astro/src
diff options
context:
space:
mode:
authorGravatar Hippo <6137925+hippotastic@users.noreply.github.com> 2024-02-14 23:27:18 +0100
committerGravatar GitHub <noreply@github.com> 2024-02-14 17:27:18 -0500
commit51b6ff7403c1223b1c399e88373075972c82c24c (patch)
treefa61d48d30b2460742eeef45884cdbf05ad2cef6 /packages/create-astro/src
parentef080d5b93b11a67ceb7621db105749f3a926b66 (diff)
downloadastro-51b6ff7403c1223b1c399e88373075972c82c24c.tar.gz
astro-51b6ff7403c1223b1c399e88373075972c82c24c.tar.zst
astro-51b6ff7403c1223b1c399e88373075972c82c24c.zip
Fix invalid URLs being returned from `getRegistry`, synchronize all copies (#10117)
Diffstat (limited to 'packages/create-astro/src')
-rw-r--r--packages/create-astro/src/messages.ts7
1 files changed, 5 insertions, 2 deletions
diff --git a/packages/create-astro/src/messages.ts b/packages/create-astro/src/messages.ts
index eea20d516..8f6a2cf2e 100644
--- a/packages/create-astro/src/messages.ts
+++ b/packages/create-astro/src/messages.ts
@@ -12,11 +12,14 @@ import { shell } from './shell.js';
let _registry: string;
async function getRegistry(packageManager: string): Promise<string> {
if (_registry) return _registry;
+ const fallback = 'https://registry.npmjs.org';
try {
const { stdout } = await shell(packageManager, ['config', 'get', 'registry']);
- _registry = stdout?.trim()?.replace(/\/$/, '') || 'https://registry.npmjs.org';
+ _registry = stdout?.trim()?.replace(/\/$/, '') || fallback;
+ // Detect cases where the shell command returned a non-URL (e.g. a warning)
+ if (!new URL(_registry).host) _registry = fallback;
} catch (e) {
- _registry = 'https://registry.npmjs.org';
+ _registry = fallback;
}
return _registry;
}