long-git-cli
Version:
A CLI tool for Git tag management.
69 lines • 1.98 kB
TypeScript
import type { TagInfo } from '../types';
/**
* Tag 格式配置
*/
export interface TagFormatConfig {
/** 前缀,如 'test-v', 'uat-v' */
prefix: string;
/** 格式模式,如 '00.00.0000' */
pattern: string;
}
/**
* 预定义的 Tag 格式
*/
export declare const TAG_FORMATS: {
readonly TEST: {
readonly prefix: "test-v";
readonly pattern: "00.00.0000";
};
readonly UAT: {
readonly prefix: "uat-v";
readonly pattern: "00.00.0000";
};
readonly PROD: {
readonly prefix: "v";
readonly pattern: "00.00.0000";
};
};
/**
* 解析 tag 格式配置
* @param format 格式字符串,如 'test-v00.00.0000'
*/
export declare function parseTagFormat(format: string): TagFormatConfig;
/**
* 解析 tag 字符串,提取版本号信息
* @param tag tag 字符串
* @param format 可选的格式配置,如果不提供则自动检测
*/
export declare function parseTag(tag: string, format?: TagFormatConfig): TagInfo;
/**
* 自动检测 tag 格式
*/
export declare function detectTagFormat(tag: string): TagFormatConfig | null;
/**
* 递增版本号,将 build 和 patch 版本号加 1
*/
export declare function incrementVersion(tagInfo: TagInfo): TagInfo;
/**
* 格式化版本信息为 tag 字符串
* @param tagInfo 版本信息
* @param format 格式配置
*/
export declare function formatTag(tagInfo: TagInfo, format: TagFormatConfig): string;
/**
* 比较两个版本号的大小
*/
export declare function compareVersions(a: TagInfo, b: TagInfo): number;
/**
* 查找匹配格式的最新 tag
* @param tags tag 列表
* @param format 格式配置
*/
export declare function findLatestTag(tags: string[], format: TagFormatConfig): string | null;
/**
* 生成下一个 tag
* @param tags 现有 tag 列表
* @param format 格式配置
*/
export declare function generateNextTag(tags: string[], format: TagFormatConfig): string;
//# sourceMappingURL=tag.d.ts.map