@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
47 lines • 4.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.determineCurrentVersion = determineCurrentVersion;
const semver_1 = require("semver");
const configuration_1 = require("./configuration");
function determineCurrentVersion(tags, branch, prefix) {
const escapeRegExp = (text) => {
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
};
const officialTags = tags.filter(x => new RegExp(`^${escapeRegExp(prefix)}[0-9]+\\.[0-9]+\\.[0-9]+$`).test(x.tagName));
if (branch.type === configuration_1.BranchType.MAIN) {
tags = officialTags;
}
else if (branch.type === configuration_1.BranchType.UNKNOWN) {
throw new Error('Can\'t determine current version on branch type "UNKNOWN". Please check your settings and current branch');
}
else {
const preReleaseTags = tags.filter(x => new RegExp(`${escapeRegExp(prefix)}[0-9]+\\.[0-9]+\\.[0-9]+-${escapeRegExp(branch.name)}\\.[0-9]+$`).test(x.tagName));
if (preReleaseTags.length > 0) {
tags = [...preReleaseTags, ...officialTags];
}
else {
tags = officialTags;
}
}
tags.sort((a, b) => (0, semver_1.lt)(a.tagName.replace(prefix, ''), b.tagName.replace(prefix, '')) ? 1 : -1);
let latestTag;
if (tags.length > 0) {
latestTag = tags[0];
}
else {
latestTag = {
hash: undefined,
tagName: 'v0.0.0',
};
}
const regexReplace = new RegExp(`^${escapeRegExp(prefix)}`);
const version = (0, semver_1.parse)(latestTag.tagName.replace(regexReplace, ''));
if (version) {
return {
hash: latestTag.hash,
version: version.format(),
};
}
throw new Error(`Oops something went wrong parsing version ${version}`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3ZlcnNpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSwwREF3Q0M7QUFsREQsbUNBQW1DO0FBRW5DLG1EQUE0RDtBQVE1RCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFjLEVBQUUsTUFBcUIsRUFBRSxNQUFjO0lBQzNGLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0NBQW9DO0lBQzFGLENBQUMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdkgsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLDBCQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxHQUFHLFlBQVksQ0FBQztJQUN0QixDQUFDO1NBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLDBCQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwR0FBMEcsQ0FBQyxDQUFDO0lBQzlILENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzlKLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLFlBQVksQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLFdBQUUsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRixJQUFJLFNBQWlCLENBQUM7SUFFdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztTQUFNLENBQUM7UUFDTixTQUFTLEdBQUc7WUFDVixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxRQUFRO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLElBQUEsY0FBSyxFQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25FLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUMxRSxDQUFDIn0=