unbag
Version:
一个专门用来开发npm工具的包
67 lines • 1.81 kB
JavaScript
import { useGit } from "./../../utils/git.mjs";
import { useLog } from "./../../utils/log.mjs";
import { useMessage } from "../../utils/message/index.mjs";
const ReleaseBranchConfigDefault = {
mainName: "main",
mainCheckDisable: false,
cleanCheckDisable: false
};
const branch = async params => {
const {
finalUserConfig
} = params;
const {
release: {
branch: {
mainCheckDisable,
mainName,
cleanCheckDisable
}
}
} = finalUserConfig;
const log = useLog({
finalUserConfig
});
const message = useMessage({
locale: finalUserConfig.locale
});
const {
currentBranchGet,
currentBranchStatusGet
} = 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
};
};
export { ReleaseBranchConfigDefault, branch };