open-report.js 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. 'use strict';
  2. const openEditor = require('open-editor');
  3. const sortResults = (a, b) => a.errorCount + b.errorCount > 0 ? (a.errorCount - b.errorCount) : (a.warningCount - b.warningCount);
  4. const resultToFile = result => {
  5. const [message] = result.messages
  6. .sort((a, b) => {
  7. if (a.severity < b.severity) {
  8. return 1;
  9. }
  10. if (a.severity > b.severity) {
  11. return -1;
  12. }
  13. if (a.line < b.line) {
  14. return -1;
  15. }
  16. if (a.line > b.line) {
  17. return 1;
  18. }
  19. return 0;
  20. });
  21. return {
  22. file: result.filePath,
  23. line: message.line,
  24. column: message.column
  25. };
  26. };
  27. const files = (report, predicate) => report.results
  28. .filter(result => predicate(result))
  29. .sort(sortResults)
  30. .map(result => resultToFile(result));
  31. module.exports = report => {
  32. if (report.errorCount > 0) {
  33. openEditor(files(report, result => result.errorCount > 0));
  34. } else if (report.warningCount > 0) {
  35. openEditor(files(report, result => result.warningCount > 0));
  36. }
  37. };