64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @fileoverview Visual Studio compatible formatter
 | |
|  * @author Ronald Pijnacker
 | |
|  */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Helper Functions
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| /**
 | |
|  * Returns the severity of warning or error
 | |
|  * @param {Object} message message object to examine
 | |
|  * @returns {string} severity level
 | |
|  * @private
 | |
|  */
 | |
| function getMessageType(message) {
 | |
|     if (message.fatal || message.severity === 2) {
 | |
|         return "error";
 | |
|     }
 | |
|     return "warning";
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Public Interface
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| module.exports = function(results) {
 | |
| 
 | |
|     let output = "",
 | |
|         total = 0;
 | |
| 
 | |
|     results.forEach(result => {
 | |
| 
 | |
|         const messages = result.messages;
 | |
| 
 | |
|         total += messages.length;
 | |
| 
 | |
|         messages.forEach(message => {
 | |
| 
 | |
|             output += result.filePath;
 | |
|             output += `(${message.line || 0}`;
 | |
|             output += message.column ? `,${message.column}` : "";
 | |
|             output += `): ${getMessageType(message)}`;
 | |
|             output += message.ruleId ? ` ${message.ruleId}` : "";
 | |
|             output += ` : ${message.message}`;
 | |
|             output += "\n";
 | |
| 
 | |
|         });
 | |
| 
 | |
|     });
 | |
| 
 | |
|     if (total === 0) {
 | |
|         output += "no problems";
 | |
|     } else {
 | |
|         output += `\n${total} problem${total !== 1 ? "s" : ""}`;
 | |
|     }
 | |
| 
 | |
|     return output;
 | |
| };
 |