UNPKG

unbag

Version:

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

137 lines (136 loc) 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.commit = exports.ReleaseCommitConfigDefault = void 0; var _log = require("../../utils/log.cjs"); var _index = require("../../utils/message/index.cjs"); var _execa = require("execa"); const ReleaseCommitConfigDefault = exports.ReleaseCommitConfigDefault = { addAll: false, messageFormat: async ({ finalUserConfig, bumpRes }) => { const { release } = finalUserConfig; const { scope } = release; return `release${scope?.name ? `(${scope.name})` : ``}: ${bumpRes?.version}`; }, filesCollect: async ({ finalUserConfig, bumpRes, changelogRes }) => { const { release } = finalUserConfig; const { bump: { versionFileWriteDisable, versionFilePathResolve }, changelog: { fileWriteDisable: changelogFileWriteDisable, filePathResolve: changelogFilePathResolve } } = release; const files = []; if (!versionFileWriteDisable) { if (bumpRes.oldVersion !== bumpRes.version) { const pkgFileAbsolutePath = await versionFilePathResolve({ finalUserConfig }); files.push(pkgFileAbsolutePath); } } if (!changelogFileWriteDisable) { if (changelogRes.body) { const changelogFileAbsolutePath = await changelogFilePathResolve({ finalUserConfig }); files.push(changelogFileAbsolutePath); } } return files; } }; const commit = async params => { const { finalUserConfig, bumpRes, changelogRes } = params; const log = (0, _log.useLog)({ finalUserConfig }); const message = (0, _index.useMessage)({ locale: finalUserConfig.locale }); log.info(message.release.commit.processing()); const { release: { dry, commit: { disable, message: commitMessage, messageFormat, filesCollect, addAll } } } = finalUserConfig; let addFiles = []; if (addAll) { log.info(message.release.commit.willCommitAll()); } else { log.info(message.release.commit.fileCollecting()); addFiles = await filesCollect({ finalUserConfig, bumpRes, changelogRes }); if (addFiles.length <= 0) { log.warn(message.release.commit.commitFilesEmpty()); return; } log.info(message.release.commit.commitFilesInfo({ files: [...addFiles] })); } const finalCommitMsg = commitMessage || (await messageFormat({ finalUserConfig, bumpRes, changelogRes, commitFiles: { ...addFiles }, addAll })); if (!finalCommitMsg) { throw new Error(message.release.commit.messageUndefined()); } log.info(message.release.commit.messageInfo({ message: finalCommitMsg })); let _disable = disable; if (dry) { _disable = true; log.warn(message.release.dry.commit.disable()); } if (_disable) { log.warn(message.release.commit.disable()); return; } if (addAll) { await (0, _execa.$)`git add .`; } else { await (0, _execa.$)`git add ${[...addFiles]}`; } await (0, _execa.$)`git commit -m ${finalCommitMsg}`; log.info(message.releaseCommitSuccess()); }; exports.commit = commit;