From 308ffb3678dae10506751f26e140ef134857a4a2 Mon Sep 17 00:00:00 2001 From: David Chin Date: Mon, 28 Oct 2019 10:10:28 +1100 Subject: [PATCH] fix(common): CHECKOUT-4515 Ensure next version number is calculated once per build run --- scripts/webpack/get-next-version.js | 36 +++++++++++++++++------------ 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/scripts/webpack/get-next-version.js b/scripts/webpack/get-next-version.js index e67aec4d20..619d7017db 100644 --- a/scripts/webpack/get-next-version.js +++ b/scripts/webpack/get-next-version.js @@ -4,26 +4,32 @@ const argv = require('yargs').argv; const packageJson = require('../../package.json'); +let nextVersion; + function getNextVersion() { - return new Promise((resolve, reject) => { - if (argv.releaseAs) { - return resolve(semver.clean(argv.releaseAs)); - } - - conventionalRecommendedBump({ preset: 'angular' }, (err, release) => { - if (err) { - return reject(err); + if (!nextVersion) { + nextVersion = new Promise((resolve, reject) => { + if (argv.releaseAs) { + return resolve(semver.clean(argv.releaseAs)); } - if (argv.prerelease) { - const prereleaseType = typeof argv.prerelease === 'string' ? argv.prerelease : 'alpha'; + conventionalRecommendedBump({ preset: 'angular' }, (err, release) => { + if (err) { + return reject(err); + } - return resolve(semver.inc(packageJson.version, 'prerelease', prereleaseType).replace(/\.\d+$/, `.${Date.now()}`)); - } + if (argv.prerelease) { + const prereleaseType = typeof argv.prerelease === 'string' ? argv.prerelease : 'alpha'; + + return resolve(semver.inc(packageJson.version, 'prerelease', prereleaseType).replace(/\.\d+$/, `.${Date.now()}`)); + } + + resolve(semver.inc(packageJson.version, release.releaseType)); + }) + }); + } - resolve(semver.inc(packageJson.version, release.releaseType)); - }) - }); + return nextVersion; } module.exports = getNextVersion;