t-comm
Version:
专业、稳定、纯粹的工具库
63 lines (59 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function getImageName(_a) {
var projectName = _a.projectName,
subProjectName = _a.subProjectName,
branch = _a.branch;
var innerParse = function innerParse(str) {
return str.replace(/\//g, '.');
};
var prefix = "".concat(innerParse(projectName), ".").concat(innerParse(subProjectName));
if (branch === 'release') {
return prefix;
}
var result = "".concat(prefix, ".").concat(innerParse(branch));
return result;
}
function parseGrayPublishConfig(config) {
if (config === void 0) {
config = {};
}
var map = {};
Object.keys(config).forEach(function (projectName) {
var projectMap = config[projectName];
Object.keys(projectMap).forEach(function (subProjectName) {
var subProjectMap = projectMap[subProjectName];
Object.keys(subProjectMap).forEach(function (branch) {
var coreConfig = subProjectMap[branch];
var curPackageName = getImageName({
projectName: projectName,
subProjectName: subProjectName,
branch: branch
});
map[curPackageName] = coreConfig;
});
});
});
return map;
}
function getCurrentProjectUseGray(fullSubProjectName, globalGrayPublishConfig) {
var keys = Object.keys(globalGrayPublishConfig);
var list = keys.filter(function (key) {
return key === fullSubProjectName || key.startsWith("".concat(fullSubProjectName, "."));
}).filter(function (packageName) {
var info = globalGrayPublishConfig[packageName];
return !!(info.grayVersion && info.grayPercent && info.cookieId);
}).map(function (packageName) {
var parsedBranch = packageName.replace(fullSubProjectName, '');
return {
fullSubProjectName: fullSubProjectName,
packageName: packageName,
parsedBranch: parsedBranch,
cookieId: globalGrayPublishConfig[packageName].cookieId || ''
};
});
return list;
}
exports.getCurrentProjectUseGray = getCurrentProjectUseGray;
exports.getImageName = getImageName;
exports.parseGrayPublishConfig = parseGrayPublishConfig;