Skip to content

Commit b3a7d63

Browse files
dominique-blockchainwraithgar
authored andcommitted
fix: semver.diff prerelease to release recognition
1 parent da08e01 commit b3a7d63

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

Diff for: functions/diff.js

+13
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,19 @@ const diff = (version1, version2) => {
1717
}
1818
}
1919
}
20+
if (v1.major === v2.major &&
21+
v1.minor === v2.minor &&
22+
v1.patch === v2.patch && !(v1.prerelease.length && v2.prerelease.length)) {
23+
const releaseTypes = []
24+
for (const key in v1) {
25+
if (key === 'major' || key === 'minor' || key === 'patch') {
26+
if (v1[key]) {
27+
releaseTypes.push(key)
28+
}
29+
}
30+
}
31+
return releaseTypes.pop()
32+
}
2033
return defaultResult // may be undefined
2134
}
2235
}

Diff for: test/functions/diff.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@ test('diff versions test', (t) => {
55
// [version1, version2, result]
66
// diff(version1, version2) -> result
77
[['1.2.3', '0.2.3', 'major'],
8+
['0.2.3', '1.2.3', 'major'],
89
['1.4.5', '0.2.3', 'major'],
910
['1.2.3', '2.0.0-pre', 'premajor'],
11+
['2.0.0-pre', '1.2.3', 'premajor'],
1012
['1.2.3', '1.3.3', 'minor'],
1113
['1.0.1', '1.1.0-pre', 'preminor'],
1214
['1.2.3', '1.2.4', 'patch'],
1315
['1.2.3', '1.2.4-pre', 'prepatch'],
14-
['0.0.1', '0.0.1-pre', 'prerelease'],
15-
['0.0.1', '0.0.1-pre-2', 'prerelease'],
16-
['1.1.0', '1.1.0-pre', 'prerelease'],
16+
['0.0.1', '0.0.1-pre', 'patch'],
17+
['0.0.1', '0.0.1-pre-2', 'patch'],
18+
['1.1.0', '1.1.0-pre', 'minor'],
1719
['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'],
1820
['1.0.0', '1.0.0', null],
19-
21+
['1.0.0', '1.0.0', null],
22+
['1.0.0', '1.0.0', null],
23+
['0.0.2-1', '0.0.2', 'patch'],
24+
['0.1.0-1', '0.1.0', 'minor'],
25+
['1.0.0-1', '1.0.0', 'major'],
2026
].forEach((v) => {
2127
const version1 = v[0]
2228
const version2 = v[1]

0 commit comments

Comments
 (0)