unbag
Version:
一个专门用来开发npm工具的包
47 lines • 1.15 kB
JavaScript
import { loadCommitLintConfig } from "./config.mjs";
import lint from "@commitlint/lint";
import { Command } from "./../../core/command.mjs";
import { useLog } from "./../../utils/log.mjs";
import { useMessage } from "./../../utils/message/index.mjs";
const commitLint = async params => {
const {
finalUserConfig,
message
} = params;
const log = useLog({
finalUserConfig
});
const messageMap = useMessage({
locale: finalUserConfig.locale
});
const lintConfig = await loadCommitLintConfig({
finalUserConfig
});
const report = await lint(message, lintConfig.rules, lintConfig);
if (!report.valid) {
report.errors.map(e => {
log.error(`${e.message}`);
});
report.warnings.map(e => {
log.warn(`${e.message}`);
});
throw new Error(messageMap.commit.lint.error({
message
}));
}
log.info(messageMap.commit.lint.success({
message
}));
};
class CommitLintCommand extends Command {
async task(message) {
const {
finalUserConfig
} = this;
await commitLint({
finalUserConfig,
message
});
}
}
export { CommitLintCommand, commitLint };