UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

134 lines 11.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BumpType = void 0; exports.executeBump = executeBump; exports.detectBumpType = detectBumpType; exports.validateBumpType = validateBumpType; const colorize_node_1 = require("colorize-node"); const semver_1 = require("semver"); const configuration_1 = require("./configuration"); class BumpType { precedence; explicitVersion; static SKIP = new BumpType(100); static NONE = new BumpType(0); static PATCH = new BumpType(1); static MINOR = new BumpType(2); static MAJOR = new BumpType(3); static GRADUATE = new BumpType(4); static explicit(version) { return new BumpType(10, version); } static parse(bumpTypeName) { switch (bumpTypeName.toLowerCase()) { case 'major': return BumpType.MAJOR; case 'minor': return BumpType.MINOR; case 'patch': return BumpType.PATCH; case 'graduate': return BumpType.GRADUATE; case 'none': return BumpType.NONE; case 'skip': return BumpType.SKIP; } if ((0, semver_1.parse)(bumpTypeName)) { return BumpType.explicit(bumpTypeName); } return BumpType.NONE; } static tryParse(bumpTypeName) { if (bumpTypeName) { return this.parse(bumpTypeName); } return undefined; } toString() { switch (this) { case BumpType.MAJOR: return 'major'; case BumpType.MINOR: return 'major'; case BumpType.PATCH: return 'major'; case BumpType.GRADUATE: return 'major'; case BumpType.NONE: return 'none'; case BumpType.SKIP: return 'skip'; } if (this.explicitVersion) { return this.explicitVersion; } return 'none'; } gt(compare) { return this.precedence > compare.precedence; } constructor(precedence, explicitVersion) { this.precedence = precedence; this.explicitVersion = explicitVersion; } } exports.BumpType = BumpType; const bumpMap = { fix: BumpType.PATCH, feat: BumpType.MINOR, feature: BumpType.MINOR, revert: BumpType.PATCH, perf: BumpType.PATCH, performance: BumpType.PATCH, chore: BumpType.PATCH, docs: BumpType.PATCH, }; function executeBump(version, branch, bumpType) { if (bumpType === BumpType.NONE) { return null; } const semver = (0, semver_1.parse)(version); if (!semver) { return null; } if ((0, semver_1.prerelease)(semver)) { return (0, semver_1.inc)(version, 'prerelease'); } const preReleaseName = branch.type === configuration_1.BranchType.MAIN ? undefined : branch.name; const preReleasePrefix = branch.type === configuration_1.BranchType.MAIN ? '' : 'pre'; if (semver.major === 0) { switch (bumpType) { case BumpType.GRADUATE: return (0, semver_1.inc)(version, `${preReleasePrefix}major`, preReleaseName); case BumpType.MAJOR: return (0, semver_1.inc)(version, `${preReleasePrefix}minor`, preReleaseName); default: return (0, semver_1.inc)(version, `${preReleasePrefix}patch`, preReleaseName); } } else { switch (bumpType) { case BumpType.GRADUATE: return (0, semver_1.inc)(version, `${preReleasePrefix}major`, preReleaseName); case BumpType.MAJOR: return (0, semver_1.inc)(version, `${preReleasePrefix}major`, preReleaseName); case BumpType.MINOR: return (0, semver_1.inc)(version, `${preReleasePrefix}minor`, preReleaseName); case BumpType.PATCH: return (0, semver_1.inc)(version, `${preReleasePrefix}patch`, preReleaseName); } } return null; } function detectBumpType(commits) { let current = BumpType.NONE; for (const commit of commits) { if (commit.breaking) { return BumpType.MAJOR; } const detected = bumpMap[commit.type]; if (detected && detected.gt(current)) { current = detected; } } return current; } function validateBumpType(bumpType, rawCommits, configuration, branch, logger) { if (branch.type === configuration_1.BranchType.FEATURE) { switch (configuration.options.featureBumpBehavior) { case 'never': logger?.reportInfo(`On feature branch with featureBumpBehavior: Never. Forcing bumptype to ${colorize_node_1.colorize.greenBright('NONE')} `); return BumpType.NONE; case 'normal': return bumpType; } // all commits if (bumpType === BumpType.NONE && rawCommits.length > 0) { logger?.reportInfo(`Found ${colorize_node_1.colorize.cyan(rawCommits.length)} normal commits and will bump feature branch with ${colorize_node_1.colorize.greenBright('PATCH')}`); return BumpType.PATCH; } } return bumpType; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2J1bXAtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0ZBLGtDQWlDQztBQUdELHdDQWFDO0FBRUQsNENBZ0JDO0FBdkpELGlEQUF5QztBQUN6QyxtQ0FBZ0Q7QUFFaEQsbURBQTRFO0FBTTVFLE1BQWEsUUFBUTtJQUNYLFVBQVUsQ0FBUztJQUNYLGVBQWUsQ0FBVTtJQUV6QyxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsTUFBTSxDQUFVLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQVUsS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBVSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQWU7UUFDN0IsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBb0I7UUFDL0IsUUFBUSxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNw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