1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var SEMVER;
|
4 | (function (SEMVER) {
|
5 | SEMVER["major"] = "major";
|
6 | SEMVER["premajor"] = "premajor";
|
7 | SEMVER["minor"] = "minor";
|
8 | SEMVER["preminor"] = "preminor";
|
9 | SEMVER["patch"] = "patch";
|
10 | SEMVER["prepatch"] = "prepatch";
|
11 | SEMVER["noVersion"] = "";
|
12 | })(SEMVER || (SEMVER = {}));
|
13 | exports.default = SEMVER;
|
14 |
|
15 | function getHigherSemverTag(left, right) {
|
16 | if (left === SEMVER.major || right === SEMVER.major) {
|
17 | return SEMVER.major;
|
18 | }
|
19 | if (left === SEMVER.minor || right === SEMVER.minor) {
|
20 | return SEMVER.minor;
|
21 | }
|
22 | return SEMVER.patch;
|
23 | }
|
24 | exports.getHigherSemverTag = getHigherSemverTag;
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | function calculateSemVerBump(labels, labelMap, { onlyPublishWithReleaseLabel } = {}) {
|
31 | const labelSet = new Set();
|
32 | const skipReleaseLabels = labelMap.get('skip') || [];
|
33 | const noReleaseLabels = labelMap.get('none') || [];
|
34 | labels.forEach(pr => {
|
35 | pr.forEach(label => {
|
36 | const userLabel = [...labelMap.entries()].find(pair => pair[1].includes(label));
|
37 | labelSet.add(userLabel ? userLabel[0] : label);
|
38 | });
|
39 | });
|
40 | let skipRelease = false;
|
41 | if (labels.length > 0 && labels[0].length > 0) {
|
42 | const releaseLabels = labelMap.get('release') || [];
|
43 | skipRelease = onlyPublishWithReleaseLabel
|
44 | ? !labels[0].some(label => releaseLabels.includes(label))
|
45 | : labels[0].some(label => skipReleaseLabels.includes(label));
|
46 | }
|
47 |
|
48 | if (labels.length > 0 &&
|
49 | labels[0].length === 1 &&
|
50 | noReleaseLabels.includes(labels[0][0])) {
|
51 | return SEMVER.noVersion;
|
52 | }
|
53 | const version = [...labelSet].reduce(getHigherSemverTag, SEMVER.patch);
|
54 | if (skipRelease) {
|
55 | return SEMVER.noVersion;
|
56 | }
|
57 | return version;
|
58 | }
|
59 | exports.calculateSemVerBump = calculateSemVerBump;
|
60 |
|
\ | No newline at end of file |