UNPKG

@putout/eslint

Version:

Wrapper that simplifies ESLint API and makes it compatible with 🐊Putout

47 lines (35 loc) 1.1 kB
import {Linter} from 'eslint'; import {convertToPlace} from '../eslint.js'; export const lint = (source, {fix = true, plugins, filename, options = []}) => { const linter = new Linter({ configType: 'flat', }); const allOptions = []; if (plugins) { const [name, plugin] = plugins[0]; allOptions.push({ rules: { [`${name}/plugin`]: 'error', }, plugins: { [name]: { rules: { plugin, }, }, }, }); } allOptions.push(...options); const mainOptions = {}; if (filename) mainOptions.filename = filename; if (!fix) { const places = linter .verify(source, allOptions, mainOptions) .map(convertToPlace); return [source, places]; } const {output, messages} = linter.verifyAndFix(source, allOptions, mainOptions); return [output, messages.map(convertToPlace)]; };