unbag
Version:
一个专门用来开发npm工具的包
65 lines • 1.68 kB
JavaScript
import load from "@commitlint/load";
import { RuleConfigSeverity } from "@commitlint/types";
import { useRoot } from "./../../utils/common.mjs";
import { useFs } from "./../../utils/fs.mjs";
import { createRequire } from "node:module";
const require2 = createRequire(import.meta.url);
const commitlintConfigConventionalPath = require2.resolve("@commitlint/config-conventional");
const CommitConfigDefault = {
lint: {
extends: [commitlintConfigConventionalPath],
rules: {
"type-enum": () => {
return [RuleConfigSeverity.Error, "always", ["build", "chore", "ci", "docs", "feat", "fix", "perf", "refactor", "revert", "style", "test", "release"]];
}
},
prompt: {
questions: {
type: {
enum: {
release: {
description: "release a version"
}
}
}
}
}
}
};
const loadCommitLintConfig = async params => {
const {
finalUserConfig
} = params;
const {
tempDir,
commit: {
lint
}
} = finalUserConfig;
const fs = useFs();
const rootPath = useRoot({
finalUserConfig
});
const commitTempDir = rootPath.resolve({
next: tempDir
}).resolve({
next: "./commit"
});
const tempLintConfigFile = {
path: commitTempDir.resolve({
next: "./temp-lint-config.mjs"
}),
content: `
export default {}
`
};
await fs.outputFile(tempLintConfigFile.path.content, tempLintConfigFile.content);
const lintConfig = await load(
//@ts-ignore
lint, {
file: tempLintConfigFile.path.content,
cwd: rootPath.content
});
return lintConfig;
};
export { CommitConfigDefault, loadCommitLintConfig };