UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

47 lines 4.41 kB
"use strict"; 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=