diff --git a/scripts/get-next-version.js b/scripts/get-next-version.js index 8aa22b0b3c88..7df1a699c371 100644 --- a/scripts/get-next-version.js +++ b/scripts/get-next-version.js @@ -1,21 +1,32 @@ /* eslint-disable no-console */ const semver = require('semver') +const Bluebird = require('bluebird') +const bumpCb = require('conventional-recommended-bump') +const currentVersion = require('../package.json').version + +const bump = Bluebird.promisify(bumpCb) +const paths = ['packages', 'cli'] + +let nextVersion + +const getNextVersionForPath = async (path) => { + const { releaseType } = await bump({ preset: 'angular', path }) -const fail = (...reason) => { - console.error(...reason) - process.exit(1) + return semver.inc(currentVersion, releaseType || 'patch') } -const bump = require('conventional-recommended-bump') -const currentVersion = require('../package.json').version +Bluebird.mapSeries(paths, async (path) => { + const pathNextVersion = await getNextVersionForPath(path) -bump({ preset: 'angular' }, (err, { releaseType }) => { - if (err) { - return fail('Error getting next version', err) + if (!nextVersion || semver.gt(pathNextVersion, nextVersion)) { + nextVersion = pathNextVersion + } +}) +.then(() => { + if (!nextVersion) { + throw new Error('Unable to determine next version.') } - - const nextVersion = semver.inc(currentVersion, releaseType || 'patch') if (process.argv.includes('--npm')) { const cmd = `npm --no-git-tag-version version ${nextVersion}`