UNPKG

unbag

Version:

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

71 lines 2.05 kB
import { useGit } from "./../../utils/git.mjs"; import { useMessage } from "./../../utils/message/index.mjs"; import { createRequire } from "node:module"; import { usePath } from "./../../utils/path.mjs"; import { loadCommitLintConfig } from "./config.mjs"; import inquirer from "inquirer"; import { useLog } from "./../../utils/log.mjs"; const require2 = createRequire(import.meta.url); const useCommitizenCommit = async params => { const { finalUserConfig } = params; const path = usePath(); const log = useLog({ finalUserConfig }); const commitizenPath = require2.resolve("commitizen"); log.debug({ commitizenPath }); const commitizenCommitJsFile = path.resolve(commitizenPath, "../commitizen"); const process = require2(commitizenCommitJsFile); return process.commit; }; const gitCz = async params => { const { finalUserConfig } = params; const czCommit = await useCommitizenCommit({ finalUserConfig }); const path = usePath(); const log = useLog({ finalUserConfig }); const czCommitlintPath = require2.resolve("@commitlint/cz-commitlint"); const processJsFile = path.resolve(czCommitlintPath, "../lib/Process.js"); const process = (await import(processJsFile)).default; const lintConfig = await loadCommitLintConfig({ finalUserConfig }); const prompter = (inquirerIns, commit) => { process(lintConfig.rules, lintConfig.prompt, inquirerIns).then(commit); }; log.debug({ lintConfig }); const message = useMessage({ locale: finalUserConfig.locale }); const git = useGit(); const gitRootPath = await git.gitRootPathGet(); const stageFiles = await git.stageFilesGet(); log.debug({ stageFiles, gitRootPath }); if (stageFiles.length <= 0) { throw new Error(message.commit.branch.stageFiles.empty()); } czCommit(inquirer, gitRootPath, prompter, { disableAppendPaths: true, emitData: true, quiet: finalUserConfig.log.disabled }, function (error) { if (error) { throw error; } }); }; export { gitCz };