• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * @fileoverview unix-style formatter.
3 * @author oshi-shinobu
4 */
5"use strict";
6
7//------------------------------------------------------------------------------
8// Helper Functions
9//------------------------------------------------------------------------------
10
11/**
12 * Returns a canonical error level string based upon the error message passed in.
13 * @param {Object} message Individual error message provided by eslint
14 * @returns {string} Error level string
15 */
16function getMessageType(message) {
17    if (message.fatal || message.severity === 2) {
18        return "Error";
19    }
20    return "Warning";
21
22}
23
24
25//------------------------------------------------------------------------------
26// Public Interface
27//------------------------------------------------------------------------------
28
29module.exports = function(results) {
30
31    let output = "",
32        total = 0;
33
34    results.forEach(result => {
35
36        const messages = result.messages;
37
38        total += messages.length;
39
40        messages.forEach(message => {
41
42            output += `${result.filePath}:`;
43            output += `${message.line || 0}:`;
44            output += `${message.column || 0}:`;
45            output += ` ${message.message} `;
46            output += `[${getMessageType(message)}${message.ruleId ? `/${message.ruleId}` : ""}]`;
47            output += "\n";
48
49        });
50
51    });
52
53    if (total > 0) {
54        output += `\n${total} problem${total !== 1 ? "s" : ""}`;
55    }
56
57    return output;
58};
59