-
Notifications
You must be signed in to change notification settings - Fork 1
/
git-version-info.js
39 lines (34 loc) · 1.01 KB
/
git-version-info.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const Semver = require('semver');
/**
* List the possible new versions.
* Borrowed form version-bump-prompt
* https://github.com/BigstickCarpet/version-bump-prompt/blob/master/lib/index.js#L50
* @param {string} baseVer Initial version.
* @return {object} Available versions.
*/
function gitVersionInfo(baseVer = '0.1.0') {
const current = new Semver(baseVer);
const identifier = current.prerelease[0] || 'beta';
const prompt = [];
const types = {
major: 'major',
minor: 'minor',
patch: 'patch',
premajor: 'pre-release major',
preminor: 'pre-release minor',
prepatch: 'pre-relase patch',
prerelease: 'pre-release'
};
Object.keys(types).forEach(releaseType => {
const newVer = Semver.inc(current.version, releaseType, releaseType.startsWith('pre') ? identifier : '');
prompt.push({
value: newVer,
name: `${types[releaseType]} (${newVer})`
});
});
return {
current: current.version,
prompt
};
}
module.exports = gitVersionInfo;