From c0566ce05c03c6274d6efcb01a2eff42e660a9bc Mon Sep 17 00:00:00 2001 From: tommywo Date: Mon, 9 Sep 2019 10:17:18 +0200 Subject: [PATCH] fix(preset, conventionalcommits): fix handling conventionalcommits preset without config object closes #512 --- .../conventional-changelog-cli/test/test.js | 13 +++++++++++ .../index.js | 23 ++++++++++++++++++- .../package.json | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/conventional-changelog-cli/test/test.js b/packages/conventional-changelog-cli/test/test.js index 88785669a..4c8187e00 100644 --- a/packages/conventional-changelog-cli/test/test.js +++ b/packages/conventional-changelog-cli/test/test.js @@ -367,6 +367,19 @@ describe('cli', function () { done() })) }) + it('--preset "conventionalcommits" should work', function (done) { + writeFileSync('angular', '') + shell.exec('git add --all && git commit -m"fix: fix it!"') + var cp = spawn(cliPath, ['--preset', 'conventionalcommits'], { + stdio: [process.stdin, null, null] + }) + + cp.stdout + .pipe(concat(function (chunk) { + expect(chunk.toString()).to.include('Bug Fixes') + done() + })) + }) it('--config should work with --preset', function (done) { var cp = spawn(cliPath, ['--preset', 'angular', '--config', path.join(__dirname, 'fixtures/config.js')], { diff --git a/packages/conventional-changelog-conventionalcommits/index.js b/packages/conventional-changelog-conventionalcommits/index.js index 098181db9..26d8d0c24 100644 --- a/packages/conventional-changelog-conventionalcommits/index.js +++ b/packages/conventional-changelog-conventionalcommits/index.js @@ -1,11 +1,32 @@ 'use strict' const Q = require(`q`) +const _ = require(`lodash`) const conventionalChangelog = require(`./conventional-changelog`) const parserOpts = require(`./parser-opts`) const recommendedBumpOpts = require(`./conventional-recommended-bump`) const writerOpts = require(`./writer-opts`) -module.exports = function (config) { +module.exports = function (parameter) { + // parameter passed can be either a config object or a callback function + if (_.isFunction(parameter)) { + // parameter is a callback object + const config = {} + // FIXME: use presetOpts(config) for callback + Q.all([ + conventionalChangelog(config), + parserOpts(config), + recommendedBumpOpts(config), + writerOpts(config) + ]).spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { + parameter(null, { gitRawCommitsOpts: { noMerges: null }, conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + }) + } else { + const config = parameter || {} + return presetOpts(config) + } +} + +function presetOpts (config) { return Q.all([ conventionalChangelog(config), parserOpts(config), diff --git a/packages/conventional-changelog-conventionalcommits/package.json b/packages/conventional-changelog-conventionalcommits/package.json index f4b872f79..cef894ef7 100644 --- a/packages/conventional-changelog-conventionalcommits/package.json +++ b/packages/conventional-changelog-conventionalcommits/package.json @@ -35,6 +35,7 @@ "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular#readme", "dependencies": { "compare-func": "^1.3.1", + "lodash": "^4.2.1", "q": "^1.5.1" } }