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