34 lines
940 B
JavaScript
34 lines
940 B
JavaScript
'use strict';
|
|
|
|
const calcSeverityCounts = require('./calcSeverityCounts');
|
|
const pluralize = require('../utils/pluralize');
|
|
const preprocessWarnings = require('./preprocessWarnings');
|
|
|
|
/**
|
|
* @type {import('stylelint').Formatter}
|
|
*/
|
|
module.exports = function unixFormatter(results) {
|
|
const counts = { error: 0, warning: 0 };
|
|
const lines = results.flatMap((result) => {
|
|
preprocessWarnings(result);
|
|
|
|
return result.warnings.map((warning) => {
|
|
calcSeverityCounts(warning.severity, counts);
|
|
|
|
return (
|
|
`${result.source}:${warning.line}:${warning.column}: ` +
|
|
`${warning.text} [${warning.severity}]`
|
|
);
|
|
});
|
|
});
|
|
const total = lines.length;
|
|
let output = lines.join('\n');
|
|
|
|
if (total > 0) {
|
|
output += `\n\n${total} ${pluralize('problem', total)}`;
|
|
output += ` (${counts.error} ${pluralize('error', counts.error)}`;
|
|
output += `, ${counts.warning} ${pluralize('warning', counts.warning)})\n`;
|
|
}
|
|
|
|
return output;
|
|
};
|