t-comm
Version:
专业、稳定、纯粹的工具库
71 lines (70 loc) • 2.12 kB
TypeScript
import type { IGlobalGrayPublishConfig } from './types';
/**
* 获取镜像名称
* 根据项目名、子项目名和分支生成镜像名称
* @param projectName - 项目名称
* @param subProjectName - 子项目名称
* @param branch - 分支名称
* @returns 镜像名称
* @example
* ```ts
* const imageName = getImageName({
* projectName: 'my-project',
* subProjectName: 'sub-project',
* branch: 'release'
* });
* // 'my-project.sub-project'
* ```
*/
export declare function getImageName({ projectName, subProjectName, branch, }: {
projectName: string;
subProjectName: string;
branch: string;
}): string;
/**
* 解析灰度发布配置
* 将嵌套的配置对象转换为平面的映射表
* @param config - 原始配置对象
* @returns 解析后的全局灰度发布配置
* @example
* ```ts
* const config = {
* 'project1': {
* 'sub1': {
* 'release': { grayVersion: '1.0.0', grayPercent: '50', cookieId: 'xxx' }
* }
* }
* };
* const parsed = parseGrayPublishConfig(config);
* // { 'project1.sub1': { grayVersion: '1.0.0', ... } }
* ```
*/
export declare function parseGrayPublishConfig(config?: Record<string, Record<string, Record<string, Record<string, string>>>>): IGlobalGrayPublishConfig;
/**
* 获取当前项目使用的灰度配置
* 根据子项目名称查找匹配的灰度发布配置
* @param fullSubProjectName - 完整的子项目名称
* @param globalGrayPublishConfig - 全局灰度发布配置
* @returns 匹配的灰度配置列表
* @example
* ```ts
* const grayList = getCurrentProjectUseGray(
* 'my-project.sub-project',
* globalGrayPublishConfig
* );
* // [
* // {
* // fullSubProjectName: 'my-project.sub-project',
* // packageName: 'my-project.sub-project.dev',
* // parsedBranch: '.dev',
* // cookieId: 'xxx'
* // }
* // ]
* ```
*/
export declare function getCurrentProjectUseGray(fullSubProjectName: string, globalGrayPublishConfig: IGlobalGrayPublishConfig): {
fullSubProjectName: string;
packageName: string;
parsedBranch: string;
cookieId: string;
}[];