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