27 lines
802 B
JavaScript
27 lines
802 B
JavaScript
const SemanticReleaseError = require('@semantic-release/error')
|
|
|
|
const npmlog = require('npmlog')
|
|
const RegClient = require('npm-registry-client')
|
|
|
|
module.exports = function (pkg, npmConfig, cb) {
|
|
npmlog.level = npmConfig.loglevel || 'error'
|
|
const client = new RegClient({log: npmlog})
|
|
|
|
client.get(`${npmConfig.registry}${pkg.name}`, {
|
|
auth: npmConfig.auth
|
|
}, (err, data) => {
|
|
if (err && err.statusCode === 404) return cb(null, {})
|
|
if (err) return cb(err)
|
|
|
|
const version = data['dist-tags'][npmConfig.tag]
|
|
|
|
if (!version) return cb(new SemanticReleaseError(`There is no release with the dist-tag "${npmConfig.tag}" yet. Tag a version first.`, 'ENODISTTAG'))
|
|
|
|
cb(null, {
|
|
version,
|
|
gitHead: data.versions[version].gitHead,
|
|
tag: npmConfig.tag
|
|
})
|
|
})
|
|
}
|