unixFormatter.cjs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // NOTICE: This file is generated by Rollup. To modify it,
  2. // please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
  3. 'use strict';
  4. const calcSeverityCounts = require('./calcSeverityCounts.cjs');
  5. const pluralize = require('../utils/pluralize.cjs');
  6. const preprocessWarnings = require('./preprocessWarnings.cjs');
  7. /**
  8. * @type {import('stylelint').Formatter}
  9. */
  10. function unixFormatter(results) {
  11. const counts = { error: 0, warning: 0 };
  12. const lines = results.flatMap((result) => {
  13. preprocessWarnings(result);
  14. return result.warnings.map((warning) => {
  15. calcSeverityCounts(warning.severity, counts);
  16. return (
  17. `${result.source}:${warning.line}:${warning.column}: ` +
  18. `${warning.text} [${warning.severity}]`
  19. );
  20. });
  21. });
  22. const total = lines.length;
  23. let output = lines.join('\n');
  24. if (total > 0) {
  25. output += `\n\n${total} ${pluralize('problem', total)}`;
  26. output += ` (${counts.error} ${pluralize('error', counts.error)}`;
  27. output += `, ${counts.warning} ${pluralize('warning', counts.warning)})\n`;
  28. }
  29. return output;
  30. }
  31. module.exports = unixFormatter;