UNPKG

@code-pushup/eslint-plugin

Version:

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

40 lines • 1.56 kB
import ansis from 'ansis'; import { logger, pluralize, pluralizeToken, toArray } from '@code-pushup/utils'; import { formatMetaLog } from './format.js'; import { jsonHash } from './hash.js'; import { detectConfigVersion, selectRulesLoader } from './versions/index.js'; export async function listRules(targets) { const version = await detectConfigVersion(); const loadRulesMap = selectRulesLoader(version); logger.debug(formatMetaLog(`Detected ${version} config format`)); const rulesMap = await targets.reduce(async (acc, target) => { const map = await acc; const rules = await loadRulesMap(target); logger.debug(formatMetaLog(`Found ${pluralizeToken('rule', rules.length)} for ${formatTarget(target)}`)); return rules.reduce(mergeRuleIntoMap, map); }, Promise.resolve({})); return Object.values(rulesMap).flatMap(Object.values); } function mergeRuleIntoMap(map, rule) { return { ...map, [rule.id]: { ...map[rule.id], [jsonHash(rule.options)]: rule, }, }; } function formatTarget(target) { const patterns = toArray(target.patterns); return [ `${pluralize('pattern', patterns.length)} ${ansis.bold(patterns.join(' '))}`, target.eslintrc && `using config ${ansis.bold(target.eslintrc)}`, ] .filter(Boolean) .join(' '); } export function expandWildcardRules(wildcard, rules) { const prefix = wildcard.slice(0, -1); return rules.filter(rule => rule.startsWith(prefix)); } //# sourceMappingURL=rules.js.map