From d0e5d5926c8addba74bc962553dd8bcfba90e228 Mon Sep 17 00:00:00 2001 From: Dan Onoshko Date: Fri, 10 Feb 2023 19:09:08 +0700 Subject: [PATCH] refactor!: drop q from dependencies (#974) BREAKING CHANGE: now all promises are native --- package.json | 1 - .../conventional-changelog.js | 10 +- .../conventional-changelog-angular/index.js | 12 +- .../package.json | 3 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- packages/conventional-changelog-atom/index.js | 12 +- .../conventional-changelog-atom/package.json | 5 +- .../writer-opts.js | 9 +- .../test/fixtures/promise-config.js | 3 +- .../conventional-changelog.js | 10 +- .../index.js | 12 +- .../package.json | 5 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- .../index.js | 26 +- .../package.json | 3 +- .../writer-opts.js | 38 +- .../lib/merge-config.js | 424 +++++++++--------- .../conventional-changelog-core/package.json | 1 - .../conventional-changelog.js | 10 +- .../conventional-changelog-ember/index.js | 15 +- .../conventional-changelog-ember/package.json | 5 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- .../conventional-changelog-eslint/index.js | 12 +- .../package.json | 5 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- .../conventional-changelog-express/index.js | 12 +- .../package.json | 5 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- .../conventional-changelog-jquery/index.js | 12 +- .../package.json | 5 +- .../writer-opts.js | 9 +- .../conventional-changelog.js | 10 +- .../conventional-changelog-jshint/index.js | 12 +- .../package.json | 3 +- .../writer-opts.js | 9 +- .../package.json | 3 +- .../preset-resolver.js | 25 +- pnpm-lock.yaml | 46 +- 43 files changed, 425 insertions(+), 442 deletions(-) diff --git a/package.json b/package.json index 6b5e9714b..9578b7783 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "git-tails": "^1.0.0", "mocha": "^8.0.0", "pinkie-promise": "^2.0.0", - "q": "^1.5.1", "rimraf": "^3.0.2", "safe-buffer": "5.2.1", "semver": "^6.0.0", diff --git a/packages/conventional-changelog-angular/conventional-changelog.js b/packages/conventional-changelog-angular/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-angular/conventional-changelog.js +++ b/packages/conventional-changelog-angular/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-angular/index.js b/packages/conventional-changelog-angular/index.js index 961e8262e..3e9181a25 100644 --- a/packages/conventional-changelog-angular/index.js +++ b/packages/conventional-changelog-angular/index.js @@ -1,11 +1,13 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') const writerOpts = require('./writer-opts') -module.exports = Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - return { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts } - }) +module.exports = Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => ({ + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-angular/package.json b/packages/conventional-changelog-angular/package.json index 70c4a014c..99c5abf8f 100644 --- a/packages/conventional-changelog-angular/package.json +++ b/packages/conventional-changelog-angular/package.json @@ -33,7 +33,6 @@ }, "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular#readme", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } } diff --git a/packages/conventional-changelog-angular/writer-opts.js b/packages/conventional-changelog-angular/writer-opts.js index d5de1a3ad..ef3cb2a7f 100644 --- a/packages/conventional-changelog-angular/writer-opts.js +++ b/packages/conventional-changelog-angular/writer-opts.js @@ -1,17 +1,16 @@ 'use strict' const compareFunc = require('compare-func') -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/footer.hbs'), 'utf-8') ]) - .spread((template, header, commit, footer) => { + .then(([template, header, commit, footer]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-atom/conventional-changelog.js b/packages/conventional-changelog-atom/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-atom/conventional-changelog.js +++ b/packages/conventional-changelog-atom/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-atom/index.js b/packages/conventional-changelog-atom/index.js index cff26cd46..3107e7928 100644 --- a/packages/conventional-changelog-atom/index.js +++ b/packages/conventional-changelog-atom/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,13 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-atom/package.json b/packages/conventional-changelog-atom/package.json index f86e37b55..35c9ea471 100644 --- a/packages/conventional-changelog-atom/package.json +++ b/packages/conventional-changelog-atom/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-atom#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-atom#readme" } diff --git a/packages/conventional-changelog-atom/writer-opts.js b/packages/conventional-changelog-atom/writer-opts.js index eb8093c51..c7f094689 100644 --- a/packages/conventional-changelog-atom/writer-opts.js +++ b/packages/conventional-changelog-atom/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-cli/test/fixtures/promise-config.js b/packages/conventional-changelog-cli/test/fixtures/promise-config.js index b58c2d6a3..cece0e6ee 100644 --- a/packages/conventional-changelog-cli/test/fixtures/promise-config.js +++ b/packages/conventional-changelog-cli/test/fixtures/promise-config.js @@ -1,7 +1,6 @@ 'use strict' -const Q = require('q') -module.exports = Q.resolve({ +module.exports = Promise.resolve({ writerOpts: { mainTemplate: '{{commitGroups.[0].commits.[0].type}}{{testContext}}template' } diff --git a/packages/conventional-changelog-codemirror/conventional-changelog.js b/packages/conventional-changelog-codemirror/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-codemirror/conventional-changelog.js +++ b/packages/conventional-changelog-codemirror/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-codemirror/index.js b/packages/conventional-changelog-codemirror/index.js index cff26cd46..3107e7928 100644 --- a/packages/conventional-changelog-codemirror/index.js +++ b/packages/conventional-changelog-codemirror/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,13 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-codemirror/package.json b/packages/conventional-changelog-codemirror/package.json index 4c296d270..236c232d5 100644 --- a/packages/conventional-changelog-codemirror/package.json +++ b/packages/conventional-changelog-codemirror/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-codemirror#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-codemirror#readme" } diff --git a/packages/conventional-changelog-codemirror/writer-opts.js b/packages/conventional-changelog-codemirror/writer-opts.js index f61a17d8e..cda2a17ae 100644 --- a/packages/conventional-changelog-codemirror/writer-opts.js +++ b/packages/conventional-changelog-codemirror/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-conventionalcommits/conventional-changelog.js b/packages/conventional-changelog-conventionalcommits/conventional-changelog.js index 8eccff12c..399789500 100644 --- a/packages/conventional-changelog-conventionalcommits/conventional-changelog.js +++ b/packages/conventional-changelog-conventionalcommits/conventional-changelog.js @@ -1,12 +1,12 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') module.exports = function (config) { - return Q.all([parserOpts(config), writerOpts(config)]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) + return Promise.all([parserOpts(config), writerOpts(config)]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) } diff --git a/packages/conventional-changelog-conventionalcommits/index.js b/packages/conventional-changelog-conventionalcommits/index.js index 1f44c632e..9677410eb 100644 --- a/packages/conventional-changelog-conventionalcommits/index.js +++ b/packages/conventional-changelog-conventionalcommits/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -11,13 +10,21 @@ module.exports = function (parameter) { // parameter is a callback object const config = {} // FIXME: use presetOpts(config) for callback - Q.all([ + Promise.all([ conventionalChangelog(config), parserOpts(config), recommendedBumpOpts(config), writerOpts(config) - ]).spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - parameter(null, { gitRawCommitsOpts: { noMerges: null }, conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + ]).then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + parameter(null, { + gitRawCommitsOpts: { + noMerges: null + }, + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } else { const config = parameter || {} @@ -26,12 +33,15 @@ module.exports = function (parameter) { } function presetOpts (config) { - return Q.all([ + return Promise.all([ conventionalChangelog(config), parserOpts(config), recommendedBumpOpts(config), writerOpts(config) - ]).spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - return { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts } - }) + ]).then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => ({ + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + })) } diff --git a/packages/conventional-changelog-conventionalcommits/package.json b/packages/conventional-changelog-conventionalcommits/package.json index e45af2bb2..cf6ea4222 100644 --- a/packages/conventional-changelog-conventionalcommits/package.json +++ b/packages/conventional-changelog-conventionalcommits/package.json @@ -34,7 +34,6 @@ }, "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits#readme", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } } diff --git a/packages/conventional-changelog-conventionalcommits/writer-opts.js b/packages/conventional-changelog-conventionalcommits/writer-opts.js index 04e22c4cf..6a384f1f1 100644 --- a/packages/conventional-changelog-conventionalcommits/writer-opts.js +++ b/packages/conventional-changelog-conventionalcommits/writer-opts.js @@ -2,9 +2,8 @@ const addBangNotes = require('./add-bang-notes') const compareFunc = require('compare-func') -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') const releaseAsRe = /release-as:\s*\w*@?([0-9]+\.[0-9]+\.[0-9a-z]+(-[0-9a-z.]+)?)\s*/i /** @@ -14,7 +13,7 @@ const owner = '{{#if this.owner}}{{~this.owner}}{{else}}{{~@root.owner}}{{/if}}' const host = '{{~@root.host}}' const repository = '{{#if this.repository}}{{~this.repository}}{{else}}{{~@root.repository}}{{/if}}' -module.exports = function (config) { +module.exports = async (config) => { config = defaultConfig(config) const commitUrlFormat = expandTemplate(config.commitUrlFormat, { host, @@ -34,25 +33,28 @@ module.exports = function (config) { prefix: '{{this.prefix}}' }) - return Q.all([ + const [ + template, + header, + commit, + footer + ] = await Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/footer.hbs'), 'utf-8') ]) - .spread((template, header, commit, footer) => { - const writerOpts = getWriterOpts(config) - - writerOpts.mainTemplate = template - writerOpts.headerPartial = header - .replace(/{{compareUrlFormat}}/g, compareUrlFormat) - writerOpts.commitPartial = commit - .replace(/{{commitUrlFormat}}/g, commitUrlFormat) - .replace(/{{issueUrlFormat}}/g, issueUrlFormat) - writerOpts.footerPartial = footer - - return writerOpts - }) + const writerOpts = getWriterOpts(config) + + writerOpts.mainTemplate = template + writerOpts.headerPartial = header + .replace(/{{compareUrlFormat}}/g, compareUrlFormat) + writerOpts.commitPartial = commit + .replace(/{{commitUrlFormat}}/g, commitUrlFormat) + .replace(/{{issueUrlFormat}}/g, issueUrlFormat) + writerOpts.footerPartial = footer + + return writerOpts } function findTypeEntry (types, commit) { diff --git a/packages/conventional-changelog-core/lib/merge-config.js b/packages/conventional-changelog-core/lib/merge-config.js index 4238a7bb5..4c5c26adc 100644 --- a/packages/conventional-changelog-core/lib/merge-config.js +++ b/packages/conventional-changelog-core/lib/merge-config.js @@ -1,26 +1,29 @@ 'use strict' +const { promisify } = require('util') const dateFormat = require('dateformat') const getPkgRepo = require('get-pkg-repo') const gitSemverTags = require('git-semver-tags') const normalizePackageData = require('normalize-package-data') -const Q = require('q') let gitRemoteOriginUrl try { gitRemoteOriginUrl = require('git-remote-origin-url') } catch (err) { - gitRemoteOriginUrl = function () { - return Q.reject(err) - } + gitRemoteOriginUrl = () => Promise.reject(err) } const readPkg = require('read-pkg') const readPkgUp = require('read-pkg-up') -const URL = require('url').URL +const { URL } = require('url') const rhosts = /github|bitbucket|gitlab/i function semverTagsPromise (options) { - return Q.Promise(function (resolve, reject) { - gitSemverTags({ lernaTags: !!options.lernaPackage, package: options.lernaPackage, tagPrefix: options.tagPrefix, skipUnstable: options.skipUnstable }, function (err, result) { + return new Promise((resolve, reject) => { + gitSemverTags({ + lernaTags: !!options.lernaPackage, + package: options.lernaPackage, + tagPrefix: options.tagPrefix, + skipUnstable: options.skipUnstable + }, (err, result) => { if (err) { reject(err) } else { @@ -50,7 +53,7 @@ function guessNextTag (previousTag, version) { return version } -function mergeConfig (options, context, gitRawCommitsOpts, parserOpts, writerOpts, gitRawExecOpts) { +async function mergeConfig (options, context, gitRawCommitsOpts, parserOpts, writerOpts, gitRawExecOpts) { let configPromise let pkgPromise @@ -95,253 +98,260 @@ function mergeConfig (options, context, gitRawCommitsOpts, parserOpts, writerOpt if (options.config) { if (typeof options.config === 'function') { - configPromise = Q.nfcall(options.config) + configPromise = promisify(options.config)() } else { - configPromise = Q(options.config) + configPromise = Promise.resolve(options.config) } } if (options.pkg) { if (options.pkg.path) { - pkgPromise = Q(readPkg(options.pkg.path)) + pkgPromise = Promise.resolve(readPkg(options.pkg.path)) } else { - pkgPromise = Q(readPkgUp()) + pkgPromise = Promise.resolve(readPkgUp()) } } - const gitRemoteOriginUrlPromise = Q(gitRemoteOriginUrl()) - - return Q.allSettled([configPromise, pkgPromise, semverTagsPromise(options), gitRemoteOriginUrlPromise]) - .spread(function (configObj, pkgObj, tagsObj, gitRemoteOriginUrlObj) { - let config - let pkg - let fromTag - let repo - - let hostOpts + const gitRemoteOriginUrlPromise = Promise.resolve(gitRemoteOriginUrl()) + const [ + configObj, + pkgObj, + tagsObj, + gitRemoteOriginUrlObj + ] = await Promise.allSettled([ + configPromise, + pkgPromise, + semverTagsPromise(options), + gitRemoteOriginUrlPromise + ]) + let config + let pkg + let fromTag + let repo + + let hostOpts + + let gitSemverTags = [] + + if (configPromise) { + if (configObj.status === 'fulfilled') { + config = configObj.value + } else { + options.warn('Error in config' + configObj.reason.toString()) + config = {} + } + } else { + config = {} + } - let gitSemverTags = [] + context = { + ...context, + ...config.context + } - if (configPromise) { - if (configObj.state === 'fulfilled') { - config = configObj.value - } else { - options.warn('Error in config' + configObj.reason.toString()) - config = {} - } + if (options.pkg) { + if (pkgObj.status === 'fulfilled') { + if (options.pkg.path) { + pkg = pkgObj.value } else { - config = {} + pkg = pkgObj.value.pkg || {} } - context = { - ...context, - ...config.context - } - - if (options.pkg) { - if (pkgObj.state === 'fulfilled') { - if (options.pkg.path) { - pkg = pkgObj.value - } else { - pkg = pkgObj.value.pkg || {} - } - - pkg = options.pkg.transform(pkg) - } else if (options.pkg.path) { - options.warn(pkgObj.reason.toString()) - } - } + pkg = options.pkg.transform(pkg) + } else if (options.pkg.path) { + options.warn(pkgObj.reason.toString()) + } + } - if ((!pkg || !pkg.repository || !pkg.repository.url) && gitRemoteOriginUrlObj.state === 'fulfilled') { - pkg = pkg || {} - pkg.repository = pkg.repository || {} - pkg.repository.url = gitRemoteOriginUrlObj.value - normalizePackageData(pkg) - } + if ((!pkg || !pkg.repository || !pkg.repository.url) && gitRemoteOriginUrlObj.status === 'fulfilled') { + pkg = pkg || {} + pkg.repository = pkg.repository || {} + pkg.repository.url = gitRemoteOriginUrlObj.value + normalizePackageData(pkg) + } - if (pkg) { - context.version = context.version || pkg.version + if (pkg) { + context.version = context.version || pkg.version - try { - repo = getPkgRepo(pkg) - } catch (err) { - repo = {} - } + try { + repo = getPkgRepo(pkg) + } catch (err) { + repo = {} + } - if (repo.browse) { - const browse = repo.browse() - if (!context.host) { - if (repo.domain) { - const parsedBrowse = new URL(browse) - if (parsedBrowse.origin.indexOf('//') !== -1) { - context.host = parsedBrowse.protocol + '//' + repo.domain - } else { - context.host = parsedBrowse.protocol + repo.domain - } - } else { - context.host = null - } - } - context.owner = context.owner || repo.user || '' - context.repository = context.repository || repo.project - if (repo.host && repo.project && repo.user) { - context.repoUrl = browse + if (repo.browse) { + const browse = repo.browse() + if (!context.host) { + if (repo.domain) { + const parsedBrowse = new URL(browse) + if (parsedBrowse.origin.indexOf('//') !== -1) { + context.host = parsedBrowse.protocol + '//' + repo.domain } else { - context.repoUrl = context.host + context.host = parsedBrowse.protocol + repo.domain } + } else { + context.host = null } - - context.packageData = pkg } + context.owner = context.owner || repo.user || '' + context.repository = context.repository || repo.project + if (repo.host && repo.project && repo.user) { + context.repoUrl = browse + } else { + context.repoUrl = context.host + } + } - context.version = context.version || '' + context.packageData = pkg + } - if (tagsObj.state === 'fulfilled') { - gitSemverTags = context.gitSemverTags = tagsObj.value - fromTag = gitSemverTags[options.releaseCount - 1] - const lastTag = gitSemverTags[0] + context.version = context.version || '' - if (lastTag === context.version || lastTag === 'v' + context.version) { - if (options.outputUnreleased) { - context.version = 'Unreleased' - } else { - options.outputUnreleased = false - } - } - } + if (tagsObj.status === 'fulfilled') { + gitSemverTags = context.gitSemverTags = tagsObj.value + fromTag = gitSemverTags[options.releaseCount - 1] + const lastTag = gitSemverTags[0] - if (typeof options.outputUnreleased !== 'boolean') { - options.outputUnreleased = true + if (lastTag === context.version || lastTag === 'v' + context.version) { + if (options.outputUnreleased) { + context.version = 'Unreleased' + } else { + options.outputUnreleased = false } + } + } - if (context.host && (!context.issue || !context.commit || !parserOpts || !parserOpts.referenceActions)) { - let type - - if (context.host) { - const match = context.host.match(rhosts) - if (match) { - type = match[0] - } - } else if (repo && repo.type) { - type = repo.type - } + if (typeof options.outputUnreleased !== 'boolean') { + options.outputUnreleased = true + } - if (type) { - hostOpts = require('../hosts/' + type) + if (context.host && (!context.issue || !context.commit || !parserOpts || !parserOpts.referenceActions)) { + let type - context = { - issue: hostOpts.issue, - commit: hostOpts.commit, - ...context - } - } else { - options.warn('Host: "' + context.host + '" does not exist') - hostOpts = {} - } - } else { - hostOpts = {} + if (context.host) { + const match = context.host.match(rhosts) + if (match) { + type = match[0] } + } else if (repo && repo.type) { + type = repo.type + } - if (context.resetChangelog) { - fromTag = null - } + if (type) { + hostOpts = require('../hosts/' + type) - gitRawCommitsOpts = { - format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci', - from: fromTag, - merges: false, - debug: options.debug, - ...config.gitRawCommitsOpts, - ...gitRawCommitsOpts + context = { + issue: hostOpts.issue, + commit: hostOpts.commit, + ...context } + } else { + options.warn('Host: "' + context.host + '" does not exist') + hostOpts = {} + } + } else { + hostOpts = {} + } - if (options.append) { - gitRawCommitsOpts.reverse = gitRawCommitsOpts.reverse || true - } + if (context.resetChangelog) { + fromTag = null + } - parserOpts = { - ...config.parserOpts, - warn: options.warn, - ...parserOpts - } + gitRawCommitsOpts = { + format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci', + from: fromTag, + merges: false, + debug: options.debug, + ...config.gitRawCommitsOpts, + ...gitRawCommitsOpts + } - if (hostOpts.referenceActions && parserOpts) { - parserOpts.referenceActions = hostOpts.referenceActions - } + if (options.append) { + gitRawCommitsOpts.reverse = gitRawCommitsOpts.reverse || true + } - if (!parserOpts.issuePrefixes?.length && hostOpts.issuePrefixes) { - parserOpts.issuePrefixes = hostOpts.issuePrefixes - } + parserOpts = { + ...config.parserOpts, + warn: options.warn, + ...parserOpts + } - writerOpts = { - finalizeContext: function (context, writerOpts, filteredCommits, keyCommit, originalCommits) { - const firstCommit = originalCommits[0] - const lastCommit = originalCommits[originalCommits.length - 1] - const firstCommitHash = firstCommit ? firstCommit.hash : null - const lastCommitHash = lastCommit ? lastCommit.hash : null - - if ((!context.currentTag || !context.previousTag) && keyCommit) { - const match = /tag:\s*(.+?)[,)]/gi.exec(keyCommit.gitTags) - const currentTag = context.currentTag - context.currentTag = currentTag || match ? match[1] : null - const index = gitSemverTags.indexOf(context.currentTag) - - // if `keyCommit.gitTags` is not a semver - if (index === -1) { - context.currentTag = currentTag || null + if (hostOpts.referenceActions && parserOpts) { + parserOpts.referenceActions = hostOpts.referenceActions + } + + if (!parserOpts.issuePrefixes?.length && hostOpts.issuePrefixes) { + parserOpts.issuePrefixes = hostOpts.issuePrefixes + } + + writerOpts = { + finalizeContext: function (context, writerOpts, filteredCommits, keyCommit, originalCommits) { + const firstCommit = originalCommits[0] + const lastCommit = originalCommits[originalCommits.length - 1] + const firstCommitHash = firstCommit ? firstCommit.hash : null + const lastCommitHash = lastCommit ? lastCommit.hash : null + + if ((!context.currentTag || !context.previousTag) && keyCommit) { + const match = /tag:\s*(.+?)[,)]/gi.exec(keyCommit.gitTags) + const currentTag = context.currentTag + context.currentTag = currentTag || match ? match[1] : null + const index = gitSemverTags.indexOf(context.currentTag) + + // if `keyCommit.gitTags` is not a semver + if (index === -1) { + context.currentTag = currentTag || null + } else { + const previousTag = context.previousTag = gitSemverTags[index + 1] + + if (!previousTag) { + if (options.append) { + context.previousTag = context.previousTag || firstCommitHash } else { - const previousTag = context.previousTag = gitSemverTags[index + 1] - - if (!previousTag) { - if (options.append) { - context.previousTag = context.previousTag || firstCommitHash - } else { - context.previousTag = context.previousTag || lastCommitHash - } - } - } - } else { - context.previousTag = context.previousTag || gitSemverTags[0] - - if (context.version === 'Unreleased') { - if (options.append) { - context.currentTag = context.currentTag || lastCommitHash - } else { - context.currentTag = context.currentTag || firstCommitHash - } - } else if (!context.currentTag) { - if (options.lernaPackage) { - context.currentTag = options.lernaPackage + '@' + context.version - } else if (options.tagPrefix) { - context.currentTag = options.tagPrefix + context.version - } else { - context.currentTag = guessNextTag(gitSemverTags[0], context.version) - } + context.previousTag = context.previousTag || lastCommitHash } } + } + } else { + context.previousTag = context.previousTag || gitSemverTags[0] - if (typeof context.linkCompare !== 'boolean' && context.previousTag && context.currentTag) { - context.linkCompare = true + if (context.version === 'Unreleased') { + if (options.append) { + context.currentTag = context.currentTag || lastCommitHash + } else { + context.currentTag = context.currentTag || firstCommitHash } - - return context - }, - debug: options.debug, - ...config.writerOpts, - reverse: options.append, - doFlush: options.outputUnreleased, - ...writerOpts + } else if (!context.currentTag) { + if (options.lernaPackage) { + context.currentTag = options.lernaPackage + '@' + context.version + } else if (options.tagPrefix) { + context.currentTag = options.tagPrefix + context.version + } else { + context.currentTag = guessNextTag(gitSemverTags[0], context.version) + } + } } - return { - options: options, - context: context, - gitRawCommitsOpts: gitRawCommitsOpts, - parserOpts: parserOpts, - writerOpts: writerOpts, - gitRawExecOpts: gitRawExecOpts + if (typeof context.linkCompare !== 'boolean' && context.previousTag && context.currentTag) { + context.linkCompare = true } - }) + + return context + }, + debug: options.debug, + ...config.writerOpts, + reverse: options.append, + doFlush: options.outputUnreleased, + ...writerOpts + } + + return { + options: options, + context: context, + gitRawCommitsOpts: gitRawCommitsOpts, + parserOpts: parserOpts, + writerOpts: writerOpts, + gitRawExecOpts: gitRawExecOpts + } } module.exports = mergeConfig diff --git a/packages/conventional-changelog-core/package.json b/packages/conventional-changelog-core/package.json index 8be3cfab9..e0c209d33 100644 --- a/packages/conventional-changelog-core/package.json +++ b/packages/conventional-changelog-core/package.json @@ -35,7 +35,6 @@ "git-remote-origin-url": "^2.0.0", "git-semver-tags": "^4.1.1", "normalize-package-data": "^3.0.0", - "q": "^1.5.1", "read-pkg": "^3.0.0", "read-pkg-up": "^3.0.0" }, diff --git a/packages/conventional-changelog-ember/conventional-changelog.js b/packages/conventional-changelog-ember/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-ember/conventional-changelog.js +++ b/packages/conventional-changelog-ember/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-ember/index.js b/packages/conventional-changelog-ember/index.js index a93cedbb9..f0971171e 100644 --- a/packages/conventional-changelog-ember/index.js +++ b/packages/conventional-changelog-ember/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,16 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { gitRawCommitsOpts: { noMerges: null }, conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + gitRawCommitsOpts: { + noMerges: null + }, + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-ember/package.json b/packages/conventional-changelog-ember/package.json index 46ae31153..43c4191ae 100644 --- a/packages/conventional-changelog-ember/package.json +++ b/packages/conventional-changelog-ember/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-ember#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-ember#readme" } diff --git a/packages/conventional-changelog-ember/writer-opts.js b/packages/conventional-changelog-ember/writer-opts.js index 1e0e8fe3d..5415bfd69 100644 --- a/packages/conventional-changelog-ember/writer-opts.js +++ b/packages/conventional-changelog-ember/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-eslint/conventional-changelog.js b/packages/conventional-changelog-eslint/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-eslint/conventional-changelog.js +++ b/packages/conventional-changelog-eslint/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-eslint/index.js b/packages/conventional-changelog-eslint/index.js index cff26cd46..3107e7928 100644 --- a/packages/conventional-changelog-eslint/index.js +++ b/packages/conventional-changelog-eslint/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,13 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-eslint/package.json b/packages/conventional-changelog-eslint/package.json index 046444d5b..28a81c1e8 100644 --- a/packages/conventional-changelog-eslint/package.json +++ b/packages/conventional-changelog-eslint/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-eslint#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-eslint#readme" } diff --git a/packages/conventional-changelog-eslint/writer-opts.js b/packages/conventional-changelog-eslint/writer-opts.js index 9469f7a6a..eab8f3144 100644 --- a/packages/conventional-changelog-eslint/writer-opts.js +++ b/packages/conventional-changelog-eslint/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-express/conventional-changelog.js b/packages/conventional-changelog-express/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-express/conventional-changelog.js +++ b/packages/conventional-changelog-express/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-express/index.js b/packages/conventional-changelog-express/index.js index cff26cd46..3107e7928 100644 --- a/packages/conventional-changelog-express/index.js +++ b/packages/conventional-changelog-express/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,13 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-express/package.json b/packages/conventional-changelog-express/package.json index 3068caefa..0c3f6ffab 100644 --- a/packages/conventional-changelog-express/package.json +++ b/packages/conventional-changelog-express/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-express#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-express#readme" } diff --git a/packages/conventional-changelog-express/writer-opts.js b/packages/conventional-changelog-express/writer-opts.js index d35336a3c..2fc6da105 100644 --- a/packages/conventional-changelog-express/writer-opts.js +++ b/packages/conventional-changelog-express/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-jquery/conventional-changelog.js b/packages/conventional-changelog-jquery/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-jquery/conventional-changelog.js +++ b/packages/conventional-changelog-jquery/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-jquery/index.js b/packages/conventional-changelog-jquery/index.js index 961e8262e..3e9181a25 100644 --- a/packages/conventional-changelog-jquery/index.js +++ b/packages/conventional-changelog-jquery/index.js @@ -1,11 +1,13 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') const writerOpts = require('./writer-opts') -module.exports = Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - return { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts } - }) +module.exports = Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => ({ + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-jquery/package.json b/packages/conventional-changelog-jquery/package.json index e40699237..1b0f8116f 100644 --- a/packages/conventional-changelog-jquery/package.json +++ b/packages/conventional-changelog-jquery/package.json @@ -31,8 +31,5 @@ "bugs": { "url": "https://github.com/conventional-changelog/conventional-changelog/issues" }, - "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-jquery#readme", - "dependencies": { - "q": "^1.5.1" - } + "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-jquery#readme" } diff --git a/packages/conventional-changelog-jquery/writer-opts.js b/packages/conventional-changelog-jquery/writer-opts.js index a4959ebab..a9f317b4d 100644 --- a/packages/conventional-changelog-jquery/writer-opts.js +++ b/packages/conventional-changelog-jquery/writer-opts.js @@ -1,15 +1,14 @@ 'use strict' -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8') ]) - .spread((template, header, commit) => { + .then(([template, header, commit]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-changelog-jshint/conventional-changelog.js b/packages/conventional-changelog-jshint/conventional-changelog.js index 62b13773d..afa9f2e3b 100644 --- a/packages/conventional-changelog-jshint/conventional-changelog.js +++ b/packages/conventional-changelog-jshint/conventional-changelog.js @@ -1,10 +1,10 @@ 'use strict' -const Q = require('q') const parserOpts = require('./parser-opts') const writerOpts = require('./writer-opts') -module.exports = Q.all([parserOpts, writerOpts]) - .spread((parserOpts, writerOpts) => { - return { parserOpts, writerOpts } - }) +module.exports = Promise.all([parserOpts, writerOpts]) + .then(([parserOpts, writerOpts]) => ({ + parserOpts, + writerOpts + })) diff --git a/packages/conventional-changelog-jshint/index.js b/packages/conventional-changelog-jshint/index.js index cff26cd46..3107e7928 100644 --- a/packages/conventional-changelog-jshint/index.js +++ b/packages/conventional-changelog-jshint/index.js @@ -1,5 +1,4 @@ 'use strict' -const Q = require('q') const conventionalChangelog = require('./conventional-changelog') const parserOpts = require('./parser-opts') const recommendedBumpOpts = require('./conventional-recommended-bump') @@ -8,8 +7,13 @@ const writerOpts = require('./writer-opts') module.exports = presetOpts function presetOpts (cb) { - Q.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) - .spread((conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts) => { - cb(null, { conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts }) + Promise.all([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) + .then(([conventionalChangelog, parserOpts, recommendedBumpOpts, writerOpts]) => { + cb(null, { + conventionalChangelog, + parserOpts, + recommendedBumpOpts, + writerOpts + }) }) } diff --git a/packages/conventional-changelog-jshint/package.json b/packages/conventional-changelog-jshint/package.json index e75628d7c..84f7d2f7f 100644 --- a/packages/conventional-changelog-jshint/package.json +++ b/packages/conventional-changelog-jshint/package.json @@ -33,7 +33,6 @@ }, "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-jshint#readme", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } } diff --git a/packages/conventional-changelog-jshint/writer-opts.js b/packages/conventional-changelog-jshint/writer-opts.js index 5a3cc6c35..2cf63b0ee 100644 --- a/packages/conventional-changelog-jshint/writer-opts.js +++ b/packages/conventional-changelog-jshint/writer-opts.js @@ -1,17 +1,16 @@ 'use strict' const compareFunc = require('compare-func') -const Q = require('q') -const readFile = Q.denodeify(require('fs').readFile) -const resolve = require('path').resolve +const { readFile } = require('fs').promises +const { resolve } = require('path') -module.exports = Q.all([ +module.exports = Promise.all([ readFile(resolve(__dirname, './templates/template.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/header.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/commit.hbs'), 'utf-8'), readFile(resolve(__dirname, './templates/footer.hbs'), 'utf-8') ]) - .spread((template, header, commit, footer) => { + .then(([template, header, commit, footer]) => { const writerOpts = getWriterOpts() writerOpts.mainTemplate = template diff --git a/packages/conventional-recommended-bump/package.json b/packages/conventional-recommended-bump/package.json index b36374e9d..7b43e1cc8 100644 --- a/packages/conventional-recommended-bump/package.json +++ b/packages/conventional-recommended-bump/package.json @@ -37,8 +37,7 @@ "conventional-commits-parser": "^3.2.0", "git-raw-commits": "^2.0.8", "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "meow": "^8.0.0" }, "scripts": { "test-windows": "mocha --timeout 30000 ./test/preset-resolver.spec.js" diff --git a/packages/conventional-recommended-bump/preset-resolver.js b/packages/conventional-recommended-bump/preset-resolver.js index b98fe9869..31abcc21b 100644 --- a/packages/conventional-recommended-bump/preset-resolver.js +++ b/packages/conventional-recommended-bump/preset-resolver.js @@ -1,22 +1,19 @@ 'use strict' -const Q = require('q') +const { promisify } = require('util') module.exports = presetResolver -function presetResolver (presetPackage) { - // start the chain as a Q.Promise - return Q.resolve().then(() => { - // handle traditional node-style callbacks - if (typeof presetPackage === 'function') { - return Q.nfcall(presetPackage) - } +async function presetResolver (presetPackage) { + // handle traditional node-style callbacks + if (typeof presetPackage === 'function') { + return await promisify(presetPackage)() + } - // handle object literal or Promise instance - if (typeof presetPackage === 'object') { - return Q(presetPackage) - } + // handle object literal or Promise instance + if (typeof presetPackage === 'object') { + return await presetPackage + } - throw new Error('preset package must be a promise, function, or object') - }) + throw new Error('preset package must be a promise, function, or object') } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3617e056..349177d71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,6 @@ importers: git-tails: ^1.0.0 mocha: ^8.0.0 pinkie-promise: ^2.0.0 - q: ^1.5.1 rimraf: ^3.0.2 safe-buffer: 5.2.1 semver: ^6.0.0 @@ -43,7 +42,6 @@ importers: git-tails: 1.1.0 mocha: 8.4.0 pinkie-promise: 2.0.1 - q: 1.5.1 rimraf: 3.0.2 safe-buffer: 5.2.1 semver: 6.3.0 @@ -81,16 +79,11 @@ importers: packages/conventional-changelog-angular: specifiers: compare-func: ^2.0.0 - q: ^1.5.1 dependencies: compare-func: 2.0.0 - q: 1.5.1 packages/conventional-changelog-atom: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-cli: specifiers: @@ -105,18 +98,13 @@ importers: tempfile: 3.0.0 packages/conventional-changelog-codemirror: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-conventionalcommits: specifiers: compare-func: ^2.0.0 - q: ^1.5.1 dependencies: compare-func: 2.0.0 - q: 1.5.1 packages/conventional-changelog-core: specifiers: @@ -130,7 +118,6 @@ importers: git-remote-origin-url: ^2.0.0 git-semver-tags: ^4.1.1 normalize-package-data: ^3.0.0 - q: ^1.5.1 read-pkg: ^3.0.0 read-pkg-up: ^3.0.0 dependencies: @@ -143,43 +130,28 @@ importers: git-remote-origin-url: 2.0.0 git-semver-tags: link:../git-semver-tags normalize-package-data: 3.0.3 - q: 1.5.1 read-pkg: 3.0.0 read-pkg-up: 3.0.0 devDependencies: conventional-changelog-angular: link:../conventional-changelog-angular packages/conventional-changelog-ember: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-eslint: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-express: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-jquery: - specifiers: - q: ^1.5.1 - dependencies: - q: 1.5.1 + specifiers: {} packages/conventional-changelog-jshint: specifiers: compare-func: ^2.0.0 - q: ^1.5.1 dependencies: compare-func: 2.0.0 - q: 1.5.1 packages/conventional-changelog-preset-loader: specifiers: @@ -247,7 +219,6 @@ importers: git-raw-commits: ^2.0.8 git-semver-tags: ^4.1.1 meow: ^8.0.0 - q: ^1.5.1 dependencies: concat-stream: 2.0.0 conventional-changelog-preset-loader: link:../conventional-changelog-preset-loader @@ -256,7 +227,6 @@ importers: git-raw-commits: link:../git-raw-commits git-semver-tags: link:../git-semver-tags meow: 8.1.2 - q: 1.5.1 devDependencies: conventional-changelog-conventionalcommits: link:../conventional-changelog-conventionalcommits @@ -2540,10 +2510,6 @@ packages: engines: {node: '>=6'} dev: true - /q/1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - /quick-lru/4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'}