UNPKG

@code-pushup/eslint-plugin

Version:

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

38 lines • 1.66 kB
import { writeFile } from 'node:fs/promises'; import path from 'node:path'; import { asyncSequential, createRunnerFiles, ensureDirectoryExists, filePathToCliArg, objectToCliArgs, readJsonFile, ui, } from '@code-pushup/utils'; import { lint } from './lint.js'; import { lintResultsToAudits, mergeLinterOutputs } from './transform.js'; export async function executeRunner({ runnerConfigPath, runnerOutputPath, }) { const { slugs, targets } = await readJsonFile(runnerConfigPath); ui().logger.log(`ESLint plugin executing ${targets.length} lint targets`); const linterOutputs = await asyncSequential(targets, lint); const lintResults = mergeLinterOutputs(linterOutputs); const failedAudits = lintResultsToAudits(lintResults); const audits = slugs.map((slug) => failedAudits.find(audit => audit.slug === slug) ?? { slug, score: 1, value: 0, displayValue: 'passed', details: { issues: [] }, }); await ensureDirectoryExists(path.dirname(runnerOutputPath)); await writeFile(runnerOutputPath, JSON.stringify(audits)); } export async function createRunnerConfig(scriptPath, audits, targets) { const config = { targets, slugs: audits.map(audit => audit.slug), }; const { runnerConfigPath, runnerOutputPath } = await createRunnerFiles('eslint', JSON.stringify(config)); return { command: 'node', args: [ filePathToCliArg(scriptPath), ...objectToCliArgs({ runnerConfigPath, runnerOutputPath }), ], configFile: runnerConfigPath, outputFile: runnerOutputPath, }; } //# sourceMappingURL=index.js.map