UNPKG

wander-pretty

Version:

A tool help to quickly use prettier & eslint on an old project.

54 lines (48 loc) 1.58 kB
const CLIEngine = require('eslint').CLIEngine; const writeString = require('./writeString'); const { objectFromEntries } = require('./fromEntries'); const isArray = require('./isArray'); const { errorDetailLevel } = require('./defaultConfig'); const chalk = require('chalk'); class Verify { constructor(config, level = errorDetailLevel) { this.eslintCli = new CLIEngine(config); this.lintMap = new Map(); const num = Number(level); if (isNaN(num)) { console.log(chalk.yellow('[warn] ', 'level is not a number, will use default level')) this.level = errorDetailLevel; } else { this.level = num; } } getMaps() { return this.lintMap } resolve({ src, data, dist }) { const { results } = this.eslintCli.executeOnFiles([src]); results.forEach(({messages, filePath}) => { messages.forEach(({ ruleId, column }) => { if (ruleId) { const errorMessage = { filePath, column }; const lintError = this.lintMap.get(ruleId); if (!lintError) { this.lintMap.set(ruleId, [errorMessage]) } else if (isArray(lintError)) { if (lintError.length < this.level) { lintError.push(errorMessage); this.lintMap.set(ruleId, lintError); } if (lintError.length === this.level) { this.lintMap.set(ruleId, this.level + 1) } } else { this.lintMap.set(ruleId, lintError + 1) } } }) }) return { src, data, dist } } } module.exports = Verify