Blame view
node_modules/eslint/lib/formatters/checkstyle.js
2.21 KB
c39994410
|
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
/** * @fileoverview CheckStyle XML reporter * @author Ian Christian Myers */ "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"; } else { return "warning"; } } /** * Returns the escaped value for a character * @param {string} s string to examine * @returns {string} severity level * @private */ function xmlEscape(s) { return ("" + s).replace(/[<>&"']/g, function(c) { switch (c) { case "<": return "<"; case ">": return ">"; case "&": return "&"; case "\"": return """; case "'": return "'"; // no default } }); } //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = function(results) { var output = ""; output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; output += "<checkstyle version=\"4.3\">"; results.forEach(function(result) { var messages = result.messages; output += "<file name=\"" + xmlEscape(result.filePath) + "\">"; messages.forEach(function(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) : "") + "\" />"; }); output += "</file>"; }); output += "</checkstyle>"; return output; }; |