surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
47 lines • 2.04 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"));
// @ts-expect-error - no types available
const eslint_config_surgio_1 = __importDefault(require("@surgio/eslint-config-surgio"));
const createCli = (cliConfig) => {
const linterConfig = {
// In ESLint 9 flat config, we use overrideConfigFile to specify a config array
// When in test mode, we only use the surgioConfig without reading user's config files
overrideConfigFile: true,
overrideConfig: eslint_config_surgio_1.default,
};
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 = await 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 = await formatter.format(results);
console.log(resultText);
return errorCount === 0;
};
exports.check = check;
//# sourceMappingURL=linter.js.map