mt-changelog
Version:
creates changelogs for git projects
52 lines (41 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.lastSemverTag = lastSemverTag;
exports['default'] = latestTag;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _childProcessPromise = require('child-process-promise');
var _semver = require('semver');
var _semver2 = _interopRequireDefault(_semver);
function lastSemverTag(tags, excludePreRelease) {
var versions = tags.filter(function (tag) {
return _semver2['default'].valid(tag);
}).map(function (tag) {
return {
tag: tag,
semver: _semver2['default'].parse(tag),
toString: function toString() {
return tag;
}
};
}).filter(function (tag) {
if (tag.semver.prerelease.length === 0) {
return true;
}
return !excludePreRelease;
}).sort(function (t1, t2) {
return _semver2['default'].compare(t1.semver, t2.semver);
});
if (versions.length === 0) {
throw 'No previous semver tag found, tag a commit in the past and try again';
}
return versions[versions.length - 1].toString();
}
function latestTag() {
var excludePreRelease = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
return (0, _childProcessPromise.exec)('git tag').then(function (_ref) {
var stdout = _ref.stdout;
return lastSemverTag(stdout.split('\n'), excludePreRelease);
});
}