UNPKG

1.14 kBJavaScriptView Raw
1var auto = require('run-auto')
2var semver = require('semver')
3
4var getCommits = require('./lib/commits')
5var getType = require('./lib/type')
6
7module.exports = function (config, cb) {
8 var plugins = config.plugins
9
10 auto({
11 lastRelease: plugins.getLastRelease.bind(null, config),
12 commits: ['lastRelease', function (results, cb) {
13 getCommits(Object.assign({
14 lastRelease: results.lastRelease
15 }, config),
16 cb)
17 }],
18 type: ['commits', 'lastRelease', function (results, cb) {
19 getType(Object.assign({
20 commits: results.commits,
21 lastRelease: results.lastRelease
22 }, config),
23 cb)
24 }]
25 }, function (err, results) {
26 if (err) return cb(err)
27
28 var nextRelease = {
29 type: results.type,
30 version: results.type === 'initial'
31 ? '1.0.0'
32 : semver.inc(results.lastRelease.version, results.type)
33 }
34
35 plugins.verifyRelease(Object.assign({
36 commits: results.commits,
37 lastRelease: results.lastRelease,
38 nextRelease: nextRelease
39 }, config), function (err) {
40 if (err) return cb(err)
41 cb(null, nextRelease)
42 })
43 })
44}