Blame view
node_modules/eslint/lib/formatters/checkstyle.js
1.66 KB
f7563de62
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
/** * @fileoverview CheckStyle XML reporter * @author Ian Christian Myers */ "use strict"; const xmlEscape = require("../util/xml-escape"); //------------------------------------------------------------------------------ // 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 = ""; output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; output += "<checkstyle version=\"4.3\">"; results.forEach(result => { const messages = result.messages; output += `<file name="${xmlEscape(result.filePath)}">`; messages.forEach(message => { output += [ `<error line="${xmlEscape(message.line)}"`, `column="${xmlEscape(message.column)}"`, `severity="${xmlEscape(getMessageType(message))}"`, `message="${xmlEscape(message.message)}${message.ruleId ? ` (${message.ruleId})` : ""}"`, `source="${message.ruleId ? xmlEscape(`eslint.rules.${message.ruleId}`) : ""}" />` ].join(" "); }); output += "</file>"; }); output += "</checkstyle>"; return output; }; |