long-git-cli
Version:
A CLI tool for Git tag management.
41 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseTag = parseTag;
exports.incrementVersion = incrementVersion;
exports.formatTag = formatTag;
exports.compareVersions = compareVersions;
/** 解析 tag 字符串,提取版本号信息 */
function parseTag(tag) {
const match = tag.match(/^test-v(\d+)\.(\d+)\.(\d{4})$/);
if (!match) {
throw new Error(`无效的 tag 格式: ${tag},期望格式: test-v00.00.0000`);
}
return {
version: tag,
major: parseInt(match[1], 10),
minor: parseInt(match[2], 10),
patch: parseInt(match[3], 10),
build: parseInt(match[3], 10)
};
}
/** 递增版本号,将 build 和 patch 版本号加 1 */
function incrementVersion(tagInfo) {
return {
...tagInfo,
build: tagInfo.build + 1,
patch: tagInfo.build + 1
};
}
/** 格式化版本信息为 tag 字符串 */
function formatTag(tagInfo) {
return `test-v${tagInfo.major.toString().padStart(2, '0')}.${tagInfo.minor.toString().padStart(2, '0')}.${tagInfo.build.toString().padStart(4, '0')}`;
}
/** 比较两个版本号的大小 */
function compareVersions(a, b) {
if (a.major !== b.major)
return a.major - b.major;
if (a.minor !== b.minor)
return a.minor - b.minor;
return a.build - b.build;
}
//# sourceMappingURL=tag.js.map