UNPKG

unbag

Version:

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

92 lines 1.94 kB
import { useLog } from "./../../utils/log.mjs"; import { useMessage } from "./../../utils/message/index.mjs"; import { $ } from "execa"; import { useTagPrefix } from "./utils.mjs"; const ReleaseTagConfigDefault = { genPrefix: ({ finalUserConfig }) => { const { release: { scope } } = finalUserConfig; if (scope?.name) { return `${scope.name}@`; } return "v"; }, messageFormat: ({ finalUserConfig, changelogRes, bumpRes }) => { const { release } = finalUserConfig; const { scope } = release; return `release${scope?.name ? `(${scope.name})` : ``}: ${bumpRes?.version}`; } }; const tag = async params => { const { finalUserConfig, bumpRes, changelogRes } = params; const log = useLog({ finalUserConfig }); const message = useMessage({ locale: finalUserConfig.locale }); log.info(message.release.tag.processing()); const { release: { dry, tag: { force, messageFormat, disable } } } = finalUserConfig; const prefix = await useTagPrefix({ finalUserConfig }); log.info(message.release.tag.prefix({ prefix })); const tagName = `${prefix}${bumpRes.version}`; log.info(message.release.tag.name({ name: tagName })); const tagMessage = await messageFormat({ finalUserConfig, changelogRes, bumpRes }); log.info(message.release.tag.message({ message: tagMessage })); let _disable = disable; if (dry) { _disable = true; log.warn(message.release.dry.tag.disable()); } if (_disable) { log.warn(message.releaseTagDisable()); return; } if (force) { log.warn(message.release.tag.force()); } await $`git tag -a ${tagName} ${force ? ["-f"] : []} -m ${tagMessage}`; log.info(message.releaseTagAddSuccess({ tagMessage, tagName })); }; export { ReleaseTagConfigDefault, tag };