Skip to content

Commit a9a4cdd

Browse files
authoredJun 1, 2022
feat: replaceRegistryHost can now be a hostname (#177)
1 parent d69e524 commit a9a4cdd

File tree

4 files changed

+11
-20
lines changed

4 files changed

+11
-20
lines changed
 

‎lib/fetcher.js

+4-9
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,10 @@ class FetcherBase {
105105
this[_readPackageJson] = readPackageJsonFast
106106
}
107107

108-
// config values: npmjs (default), never, always
109-
// we don't want to mutate the original value
110-
if (opts.replaceRegistryHost !== 'never'
111-
&& opts.replaceRegistryHost !== 'always'
112-
) {
113-
this.replaceRegistryHost = 'npmjs'
114-
} else {
115-
this.replaceRegistryHost = opts.replaceRegistryHost
116-
}
108+
// rrh is a registry hostname or 'never' or 'always'
109+
// defaults to registry.npmjs.org
110+
this.replaceRegistryHost = (!opts.replaceRegistryHost || opts.replaceRegistryHost === 'npmjs') ?
111+
'registry.npmjs.org' : opts.replaceRegistryHost
117112

118113
this.defaultTag = opts.defaultTag || 'latest'
119114
this.registry = removeTrailingSlashes(opts.registry || 'https://registry.npmjs.org')

‎lib/remote.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ const _tarballFromResolved = Symbol.for('pacote.Fetcher._tarballFromResolved')
44
const pacoteVersion = require('../package.json').version
55
const fetch = require('npm-registry-fetch')
66
const Minipass = require('minipass')
7-
// The default registry URL is a string of great magic.
8-
const magicHost = 'https://registry.npmjs.org'
97

108
const _cacheFetches = Symbol.for('pacote.Fetcher._cacheFetches')
119
const _headers = Symbol('_headers')
@@ -14,11 +12,9 @@ class RemoteFetcher extends Fetcher {
1412
super(spec, opts)
1513
this.resolved = this.spec.fetchSpec
1614
const resolvedURL = new URL(this.resolved)
17-
if (
18-
(this.replaceRegistryHost === 'npmjs'
19-
&& resolvedURL.origin === magicHost)
20-
|| this.replaceRegistryHost === 'always'
21-
) {
15+
if (this.replaceRegistryHost !== 'never'
16+
&& (this.replaceRegistryHost === 'always'
17+
|| this.replaceRegistryHost === resolvedURL.host)) {
2218
this.resolved = new URL(resolvedURL.pathname, this.registry).href
2319
}
2420

‎test/fetcher.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -518,10 +518,10 @@ t.test('set integrity, pick default algo', t => {
518518
t.end()
519519
})
520520

521-
t.test('replace opts defaults to npmjs', t => {
521+
t.test('replace opts defaults to default registry', t => {
522522
const f = new FileFetcher('pkg.tgz', {
523523
})
524-
t.equal(f.replaceRegistryHost, 'npmjs')
524+
t.equal(f.replaceRegistryHost, 'registry.npmjs.org')
525525
t.end()
526526
})
527527
t.test('replace opts never', t => {

‎test/registry.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ t.test('option replaceRegistryHost', rhTest => {
444444
cache: join(testdir, 'cache'),
445445
fullReadJson: true,
446446
})
447-
ct.equal(fetcher.replaceRegistryHost, 'npmjs')
447+
ct.equal(fetcher.replaceRegistryHost, 'registry.npmjs.org')
448448
const manifest = await fetcher.manifest()
449449
ct.equal(manifest.dist.tarball, 'https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz')
450450
const tarball = await fetcher.tarball()
@@ -465,7 +465,7 @@ t.test('option replaceRegistryHost', rhTest => {
465465
fullReadJson: true,
466466
replaceRegistryHost: 'npmjs',
467467
})
468-
ct.equal(fetcher.replaceRegistryHost, 'npmjs')
468+
ct.equal(fetcher.replaceRegistryHost, 'registry.npmjs.org')
469469
const manifest = await fetcher.manifest()
470470
ct.equal(manifest.dist.tarball, 'https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz')
471471
const tarball = await fetcher.tarball()

0 commit comments

Comments
 (0)
Please sign in to comment.