unixFormatter.js 940 B

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict';
  2. const calcSeverityCounts = require('./calcSeverityCounts');
  3. const pluralize = require('../utils/pluralize');
  4. const preprocessWarnings = require('./preprocessWarnings');
  5. /**
  6. * @type {import('stylelint').Formatter}
  7. */
  8. module.exports = function unixFormatter(results) {
  9. const counts = { error: 0, warning: 0 };
  10. const lines = results.flatMap((result) => {
  11. preprocessWarnings(result);
  12. return result.warnings.map((warning) => {
  13. calcSeverityCounts(warning.severity, counts);
  14. return (
  15. `${result.source}:${warning.line}:${warning.column}: ` +
  16. `${warning.text} [${warning.severity}]`
  17. );
  18. });
  19. });
  20. const total = lines.length;
  21. let output = lines.join('\n');
  22. if (total > 0) {
  23. output += `\n\n${total} ${pluralize('problem', total)}`;
  24. output += ` (${counts.error} ${pluralize('error', counts.error)}`;
  25. output += `, ${counts.warning} ${pluralize('warning', counts.warning)})\n`;
  26. }
  27. return output;
  28. };