commit-and-tag-version
Version:
replacement for `npm version` with automatic CHANGELOG generation
20 lines (18 loc) • 650 B
JavaScript
const gitSemverTags = require('git-semver-tags');
const semver = require('semver');
module.exports = function (tagPrefix = undefined) {
return new Promise((resolve, reject) => {
gitSemverTags({ tagPrefix }, function (err, tags) {
if (err) return reject(err);
else if (!tags.length) return resolve('1.0.0');
// Respect tagPrefix
tags = tags.map((tag) => tag.replace(new RegExp('^' + tagPrefix), ''));
// ensure that the largest semver tag is at the head.
tags = tags.map((tag) => {
return semver.clean(tag);
});
tags.sort(semver.rcompare);
return resolve(tags[0]);
});
});
};