From b3a7d63292dcb7abcab3cb681e80c47061414c4c Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 14 Jul 2020 10:22:10 -0700 Subject: [PATCH] fix: semver.diff prerelease to release recognition --- functions/diff.js | 13 +++++++++++++ test/functions/diff.js | 14 ++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/functions/diff.js b/functions/diff.js index 87200ef3..8a2ad1e1 100644 --- a/functions/diff.js +++ b/functions/diff.js @@ -17,6 +17,19 @@ const diff = (version1, version2) => { } } } + if (v1.major === v2.major && + v1.minor === v2.minor && + v1.patch === v2.patch && !(v1.prerelease.length && v2.prerelease.length)) { + const releaseTypes = [] + for (const key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key]) { + releaseTypes.push(key) + } + } + } + return releaseTypes.pop() + } return defaultResult // may be undefined } } diff --git a/test/functions/diff.js b/test/functions/diff.js index 2369c98f..ad81ca54 100644 --- a/test/functions/diff.js +++ b/test/functions/diff.js @@ -5,18 +5,24 @@ test('diff versions test', (t) => { // [version1, version2, result] // diff(version1, version2) -> result [['1.2.3', '0.2.3', 'major'], + ['0.2.3', '1.2.3', 'major'], ['1.4.5', '0.2.3', 'major'], ['1.2.3', '2.0.0-pre', 'premajor'], + ['2.0.0-pre', '1.2.3', 'premajor'], ['1.2.3', '1.3.3', 'minor'], ['1.0.1', '1.1.0-pre', 'preminor'], ['1.2.3', '1.2.4', 'patch'], ['1.2.3', '1.2.4-pre', 'prepatch'], - ['0.0.1', '0.0.1-pre', 'prerelease'], - ['0.0.1', '0.0.1-pre-2', 'prerelease'], - ['1.1.0', '1.1.0-pre', 'prerelease'], + ['0.0.1', '0.0.1-pre', 'patch'], + ['0.0.1', '0.0.1-pre-2', 'patch'], + ['1.1.0', '1.1.0-pre', 'minor'], ['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'], ['1.0.0', '1.0.0', null], - + ['1.0.0', '1.0.0', null], + ['1.0.0', '1.0.0', null], + ['0.0.2-1', '0.0.2', 'patch'], + ['0.1.0-1', '0.1.0', 'minor'], + ['1.0.0-1', '1.0.0', 'major'], ].forEach((v) => { const version1 = v[0] const version2 = v[1]