UNPKG

unbag

Version:

一个专门用来开发npm工具的包

67 lines 1.81 kB
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 };