fix(registry): be better at using the correct registry (relevant for npme)
Closes #53
This commit is contained in:
parent
85b35aaed3
commit
03534e51bc
@ -1,5 +1,6 @@
|
|||||||
const { readFileSync, writeFileSync } = require('fs')
|
const { readFileSync, writeFileSync } = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
const url = require('url')
|
||||||
|
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const log = require('npmlog')
|
const log = require('npmlog')
|
||||||
@ -42,11 +43,12 @@ npmconf.load({}, (err, conf) => {
|
|||||||
token: env.NPM_TOKEN
|
token: env.NPM_TOKEN
|
||||||
},
|
},
|
||||||
loglevel: conf.get('loglevel'),
|
loglevel: conf.get('loglevel'),
|
||||||
registry: conf.get('registry'),
|
registry: require('./lib/get-registry')(pkg, conf),
|
||||||
tag: (pkg.publishConfig || {}).tag || conf.get('tag') || 'latest'
|
tag: (pkg.publishConfig || {}).tag || conf.get('tag') || 'latest'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (npm.registry[npm.registry.length - 1] !== '/') npm.registry += '/'
|
// normalize trailing slash
|
||||||
|
npm.registry = url.format(url.parse(npm.registry))
|
||||||
|
|
||||||
log.level = npm.loglevel
|
log.level = npm.loglevel
|
||||||
|
|
||||||
|
12
src/lib/get-registry.js
Normal file
12
src/lib/get-registry.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
module.exports = function (pkg, conf) {
|
||||||
|
if (pkg.publishConfig && pkg.publishConfig.registry) return pkg.publishConfig.registry
|
||||||
|
|
||||||
|
if (pkg.name[0] !== '@') return conf.get('registry') || 'https://registry.npmjs.org/'
|
||||||
|
|
||||||
|
const scope = pkg.name.split('/')[0]
|
||||||
|
const scopedRegistry = conf.get(`${scope}/registry`)
|
||||||
|
|
||||||
|
if (scopedRegistry) return scopedRegistry
|
||||||
|
|
||||||
|
return conf.get('registry') || 'https://registry.npmjs.org/'
|
||||||
|
}
|
30
test/specs/get-registry.js
Normal file
30
test/specs/get-registry.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
const test = require('tap').test
|
||||||
|
|
||||||
|
const getRegistry = require('../../dist/lib/get-registry')
|
||||||
|
|
||||||
|
test('get correct registry', (t) => {
|
||||||
|
t.is(getRegistry({
|
||||||
|
name: 'publish-config',
|
||||||
|
publishConfig: {
|
||||||
|
registry: 'a'
|
||||||
|
}},
|
||||||
|
{}), 'a')
|
||||||
|
|
||||||
|
t.is(getRegistry({name: 'normal'}, {get: () => 'b'}), 'b')
|
||||||
|
|
||||||
|
t.is(getRegistry({name: 'normal'}, {get: () => null}), 'https://registry.npmjs.org/')
|
||||||
|
|
||||||
|
t.is(getRegistry({name: '@scoped/foo'}, {
|
||||||
|
get: (input) => input === '@scoped/registry' ? 'c' : 'd'
|
||||||
|
}), 'c')
|
||||||
|
|
||||||
|
t.is(getRegistry({name: '@scoped/bar'}, {
|
||||||
|
get: () => 'e'
|
||||||
|
}), 'e')
|
||||||
|
|
||||||
|
t.is(getRegistry({name: '@scoped/baz'}, {
|
||||||
|
get: () => null
|
||||||
|
}), 'https://registry.npmjs.org/')
|
||||||
|
|
||||||
|
t.end()
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user