surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
49 lines • 1.96 kB
JavaScript
;
// istanbul ignore file
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.check = exports.checkAndFix = exports.createCli = void 0;
const eslint_1 = require("eslint");
const lodash_1 = __importDefault(require("lodash"));
const createCli = (cliConfig) => {
const linterConfig = {
// 在测试情况下 fixture 目录不包含 eslintrc,避免 eslint 读取根目录的 eslintrc
useEslintrc: process.env.NODE_ENV !== 'test',
extensions: ['.js'],
baseConfig: {
extends: ['@surgio/eslint-config-surgio'].map(
// @ts-ignore
require.resolve),
},
};
return new eslint_1.ESLint({
...linterConfig,
...cliConfig,
});
};
exports.createCli = createCli;
const checkAndFix = async (cwd) => {
const cli = (0, exports.createCli)({ fix: true, cwd });
const results = await cli.lintFiles(['.']);
const errorCount = lodash_1.default.sumBy(results, (curr) => curr.errorCount);
const fixableErrorCount = lodash_1.default.sumBy(results, (curr) => curr.fixableErrorCount);
await eslint_1.ESLint.outputFixes(results);
const formatter = await cli.loadFormatter('stylish');
const resultText = formatter.format(results);
console.log(resultText);
return errorCount - fixableErrorCount === 0;
};
exports.checkAndFix = checkAndFix;
const check = async (cwd) => {
const cli = (0, exports.createCli)({ cwd });
const results = await cli.lintFiles(['.']);
const errorCount = lodash_1.default.sumBy(results, (curr) => curr.errorCount);
const formatter = await cli.loadFormatter('stylish');
const resultText = formatter.format(results);
console.log(resultText);
return errorCount === 0;
};
exports.check = check;
//# sourceMappingURL=linter.js.map