UNPKG

surgio

Version:

Generating rules for Surge, Clash, Quantumult like a PRO

47 lines 2.04 kB
"use strict"; // 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