42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
/**
|
|
* @fileoverview JSLint XML reporter
|
|
* @author Ian Christian Myers
|
|
*/
|
|
"use strict";
|
|
|
|
const xmlEscape = require("../xml-escape");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Public Interface
|
|
//------------------------------------------------------------------------------
|
|
|
|
module.exports = function(results) {
|
|
|
|
let output = "";
|
|
|
|
output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
|
|
output += "<jslint>";
|
|
|
|
results.forEach(result => {
|
|
const messages = result.messages;
|
|
|
|
output += `<file name="${result.filePath}">`;
|
|
|
|
messages.forEach(message => {
|
|
output += [
|
|
`<issue line="${message.line}"`,
|
|
`char="${message.column}"`,
|
|
`evidence="${xmlEscape(message.source || "")}"`,
|
|
`reason="${xmlEscape(message.message || "")}${message.ruleId ? ` (${message.ruleId})` : ""}" />`
|
|
].join(" ");
|
|
});
|
|
|
|
output += "</file>";
|
|
|
|
});
|
|
|
|
output += "</jslint>";
|
|
|
|
return output;
|
|
};
|