semantic-release/src/lib/last-release.js
2015-07-16 11:51:33 +02:00

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
})
})
}