feat(pre): plugging last-release, commits and type together

This commit is contained in:
Stephan Bönnemann 2015-06-14 21:16:26 -07:00
parent 7412401d55
commit a4fe18cade
2 changed files with 36 additions and 1 deletions

View File

@ -17,7 +17,8 @@
"dependencies": {
"npm-registry-client": "^6.4.0",
"npmconf": "^2.1.2",
"npmlog": "^1.2.1"
"npmlog": "^1.2.1",
"run-auto": "^1.1.2"
},
"devDependencies": {
"babel": "^5.5.8",

34
src/pre.js Normal file
View File

@ -0,0 +1,34 @@
const auto = require('run-auto')
const semver = require('semver')
const getLastRelease = require('./lib/last-release')
const getCommits = require('./lib/commits')
const getType = require('./lib/type')
module.exports = function (pkg, npmConfig, plugins, cb) {
auto({
lastRelease: getLastRelease.bind(null, pkg, npmConfig),
commits: ['lastRelease', (cb, results) => {
getCommits(results.lastRelease, cb)
}],
type: ['commits', 'lastRelease', (cb, results) => {
getType(plugins, results.commits, results.lastRelease, cb)
}]
}, (err, results) => {
if (err) return cb(err)
const nextRelease = {
type: results.type,
commits: results.commits,
lastVersion: results.lastRelease.version,
version: results.type === 'initial' ?
'1.0.0' :
semver.inc(results.lastRelease.version, results.type)
}
plugins.verify(nextRelease, (err) => {
if (err) return cb(err)
cb(null, nextRelease)
})
})
}