From 6c5eee329b202662dfb9b1696670d44f52ca3dfb Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Wed, 17 Jul 2024 06:46:23 +0800 Subject: [PATCH] Allow `publishConfig.registry` to be npm default registry when using Yarn berry (#750) --- source/npm/util.js | 11 ++++++++++- test/npm/util/is-external-registry.js | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/source/npm/util.js b/source/npm/util.js index 02736fcb..4ea325e6 100644 --- a/source/npm/util.js +++ b/source/npm/util.js @@ -43,7 +43,16 @@ export const username = async ({externalRegistry}) => { } }; -export const isExternalRegistry = package_ => typeof package_.publishConfig?.registry === 'string'; +const NPM_DEFAULT_REGISTRIES = new Set([ + // https://docs.npmjs.com/cli/v10/using-npm/registry + 'https://registry.npmjs.org', + // https://docs.npmjs.com/cli/v10/commands/npm-profile#registry + 'https://registry.npmjs.org/', +]); +export const isExternalRegistry = package_ => { + const registry = package_.publishConfig?.registry; + return typeof registry === 'string' && !NPM_DEFAULT_REGISTRIES.has(registry); +}; export const collaborators = async package_ => { const packageName = package_.name; diff --git a/test/npm/util/is-external-registry.js b/test/npm/util/is-external-registry.js index c449cc66..6b7bcadb 100644 --- a/test/npm/util/is-external-registry.js +++ b/test/npm/util/is-external-registry.js @@ -7,4 +7,6 @@ test('main', t => { t.false(npm.isExternalRegistry({name: 'foo'})); t.false(npm.isExternalRegistry({publishConfig: {registry: true}})); t.false(npm.isExternalRegistry({publishConfig: 'not an object'})); + t.false(npm.isExternalRegistry({publishConfig: {registry: 'https://registry.npmjs.org'}})); + t.false(npm.isExternalRegistry({publishConfig: {registry: 'https://registry.npmjs.org/'}})); });