Skip to content

Commit 50105cd

Browse files
jaakkotuosaJaakko Tuosa, SOK Strategiayksikkö
authored and
Jaakko Tuosa, SOK Strategiayksikkö
committed
fix: ignore other prerelease tags when finding latest tag (absolute-version#211)
1 parent e0019fd commit 50105cd

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/latest-semver-tag.js

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
11
const gitSemverTags = require('git-semver-tags');
22
const semver = require('semver');
33

4-
module.exports = function (tagPrefix = undefined) {
4+
module.exports = function ({ tagPrefix, prerelease }) {
55
return new Promise((resolve, reject) => {
66
gitSemverTags({ tagPrefix }, function (err, tags) {
77
if (err) return reject(err);
88
else if (!tags.length) return resolve('1.0.0');
99
// Respect tagPrefix
1010
tags = tags.map((tag) => tag.replace(new RegExp('^' + tagPrefix), ''));
11+
if (prerelease) {
12+
// ignore any other prelease tags
13+
tags = tags.filter((tag) => {
14+
if (!semver.valid(tag)) return false;
15+
if (!semver.prerelease(tag)) {
16+
// include all non-prerelease versions
17+
return true;
18+
}
19+
// check if the name of the prerelease matches the one we are looking for
20+
if (semver.prerelease(tag)[0] === prerelease) {
21+
return true;
22+
}
23+
return false;
24+
});
25+
}
1126
// ensure that the largest semver tag is at the head.
1227
tags = tags.map((tag) => {
1328
return semver.clean(tag);

0 commit comments

Comments
 (0)