git-release-manager
Version:
A tool to generate release notes from git commit history
56 lines • 3.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveGitReferences = resolveGitReferences;
exports.resolveGitReferencesFromRangeSummary = resolveGitReferencesFromRangeSummary;
exports.collectGitInfo = collectGitInfo;
const rangeOperations_1 = require("./utils/rangeOperations");
const referenceUtils_1 = require("./utils/referenceUtils");
const commitUtils_1 = require("./utils/commitUtils");
const tagUtils_1 = require("./utils/tagUtils");
async function resolveGitReferences(options) {
var _a, _b;
let resolvedFrom;
let resolvedTo;
if (options === null || options === void 0 ? void 0 : options.range) {
const { from: f, to: t } = (0, rangeOperations_1.parseRange)(options.range);
resolvedFrom = await (0, referenceUtils_1.resolveReference)(f, true);
resolvedTo = await (0, referenceUtils_1.resolveReference)(t, false);
}
else if (options === null || options === void 0 ? void 0 : options.point) {
resolvedFrom = await (0, referenceUtils_1.resolveReference)(null, true);
resolvedTo = await (0, referenceUtils_1.resolveReference)(options.point, false);
}
else {
resolvedFrom = await (0, referenceUtils_1.resolveReference)((_a = options === null || options === void 0 ? void 0 : options.from) !== null && _a !== void 0 ? _a : null, true);
resolvedTo = await (0, referenceUtils_1.resolveReference)((_b = options === null || options === void 0 ? void 0 : options.to) !== null && _b !== void 0 ? _b : null, false);
}
return { resolvedFrom, resolvedTo };
}
async function resolveGitReferencesFromRangeSummary(rangeInfo, index) {
let resolvedFrom;
let resolvedTo;
const tag = rangeInfo.referenceList[index];
if (rangeInfo.referenceList[rangeInfo.referenceList.length - 1].reference == tag.reference) {
resolvedFrom = rangeInfo.resolvedFrom;
resolvedTo = await (0, referenceUtils_1.resolveReference)(tag.name, false);
}
else if (rangeInfo.referenceList[0].reference == tag.reference) {
const previousTag = rangeInfo.referenceList[index + 1];
resolvedFrom = await (0, referenceUtils_1.resolveReference)(previousTag.name, true);
resolvedTo = rangeInfo.resolvedTo;
}
else {
const previousTag = rangeInfo.referenceList[index + 1];
resolvedFrom = await (0, referenceUtils_1.resolveReference)(previousTag.name, true);
resolvedTo = await (0, referenceUtils_1.resolveReference)(tag.name, false);
}
return { resolvedFrom, resolvedTo };
}
async function collectGitInfo(from, to) {
const resolvedRange = (0, rangeOperations_1.formatRange)(from, to);
const commitCount = await (0, commitUtils_1.getCommitCount)(resolvedRange);
const referenceList = await (0, tagUtils_1.getTags)(resolvedRange);
const latestReference = referenceList.length > 0 ? referenceList[0] : null;
return { resolvedRange, commitCount, referenceList, latestReference };
}
//# sourceMappingURL=gitOperations.js.map