human/server/lint.js

24 lines
785 B
JavaScript
Raw Normal View History

2021-06-05 23:51:46 +02:00
const log = require('@vladmandic/pilogger');
let eslint = null;
const { ESLint } = require('eslint');
const version = ESLint.version;
async function lint(lintLocations) {
log.info('Running Linter:', lintLocations);
if (!eslint) eslint = new ESLint();
const results = await eslint.lintFiles(lintLocations);
const errors = results.reduce((prev, curr) => prev += curr.errorCount, 0);
const warnings = results.reduce((prev, curr) => prev += curr.warningCount, 0);
log.info('Linter complete: files:', results.length, 'errors:', errors, 'warnings:', warnings);
if (errors > 0 || warnings > 0) {
const formatter = await eslint.loadFormatter('stylish');
const text = formatter.format(results);
log.warn(text);
}
}
exports.run = lint;
exports.version = version;