unbag
Version:
一个专门用来开发npm工具的包
73 lines (72 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.branch = exports.ReleaseBranchConfigDefault = void 0;
var _git = require("./../../utils/git.cjs");
var _log = require("./../../utils/log.cjs");
var _index = require("../../utils/message/index.cjs");
const ReleaseBranchConfigDefault = exports.ReleaseBranchConfigDefault = {
mainName: "main",
mainCheckDisable: false,
cleanCheckDisable: false
};
const branch = async params => {
const {
finalUserConfig
} = params;
const {
release: {
branch: {
mainCheckDisable,
mainName,
cleanCheckDisable
}
}
} = finalUserConfig;
const log = (0, _log.useLog)({
finalUserConfig
});
const message = (0, _index.useMessage)({
locale: finalUserConfig.locale
});
const {
currentBranchGet,
currentBranchStatusGet
} = (0, _git.useGit)();
const currentBranchName = await currentBranchGet();
if (!currentBranchName) {
throw new Error(message.releaseCurrentBranchUndefined());
}
log.info(message.releaseCurrentBranchName({
currentBranchName
}));
if (!mainCheckDisable) {
log.info(message.releaseMainBranchChecking());
if (currentBranchName !== mainName) {
throw new Error(message.releaseMainBranchCheckFail({
currentBranchName,
mainBranchName: mainName
}));
}
log.info(message.releaseMainBranchCheckSuccess());
} else {
log.warn(message.releaseMainBranchCheckDisable());
}
if (!cleanCheckDisable) {
log.info(message.releaseBranchCleanChecking());
const currentBranchStatus = await currentBranchStatusGet();
if (currentBranchStatus) {
throw new Error(message.releaseBranchCleanCheckFail({
branchStatusInfo: currentBranchStatus
}));
}
log.info(message.releaseBranchCleanCheckSuccess());
} else {
log.warn(message.releaseBranchCleanCheckDisable());
}
return {
currentBranchName
};
};
exports.branch = branch;