UNPKG

@code-pushup/eslint-plugin

Version:

Code PushUp plugin for detecting problems in source code using ESLint.📋

33 lines • 1.47 kB
import { asyncSequential, distinct, exists, toArray, ui, } from '@code-pushup/utils'; import { setupESLint } from '../../setup.js'; import { isRuleOff, optionsFromRuleEntry } from '../parse.js'; export async function loadRulesForLegacyConfig({ eslintrc, patterns, }) { const eslint = await setupESLint(eslintrc); const configs = await asyncSequential(toArray(patterns), pattern => eslint.calculateConfigForFile(pattern)); const rulesIds = distinct(configs.flatMap(config => Object.keys(config.rules ?? {}))); const rulesMeta = eslint.getRulesMetaForResults([ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions { messages: rulesIds.map(ruleId => ({ ruleId })), suppressedMessages: [], }, ]); return configs .flatMap(config => Object.entries(config.rules ?? {})) .map(([id, entry]) => { if (entry == null || isRuleOff(entry)) { return null; } const ruleMeta = rulesMeta[id]; if (!ruleMeta) { ui().logger.warning(`Metadata not found for ESLint rule ${id}`); return null; } // ignoring meta.defaultOptions to match legacy config handling in calculateConfigForFile const { defaultOptions: _, ...meta } = ruleMeta; const options = optionsFromRuleEntry(entry); return { id, meta, options }; }) .filter(exists); } //# sourceMappingURL=legacy.js.map