canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS, CSS and JSON.
71 lines (53 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _forEach2 = require('lodash/forEach');
var _forEach3 = _interopRequireDefault(_forEach2);
var _xmlbuilder = require('xmlbuilder');
var _xmlbuilder2 = _interopRequireDefault(_xmlbuilder);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @param {lintText~message} message
* @returns {string}
*/
var getMessageType = function getMessageType(message) {
if (message.severity === 2) {
return 'error';
} else {
return 'warning';
}
};
/**
* @see https://github.com/mila-labs/jshint-checkstyle-file-reporter
* @param {lintFiles~report} report
* @returns {string}
*/
exports.default = function (report) {
var xml = undefined;
xml = _xmlbuilder2.default.create('checkstyle');
xml.att('version', '4.3');
(0, _forEach3.default)(report.results, function (fileReport) {
if (!fileReport.messages.length) {
return;
}
var fileNode = xml.ele('file', {
name: fileReport.filePath
});
(0, _forEach3.default)(fileReport.messages, function (message) {
fileNode.ele('error', {
column: message.column,
line: message.line,
message: '[' + message.ruleId + '] ' + message.message,
severity: getMessageType(message),
source: ''
});
});
});
xml = xml.end({
pretty: true
});
return xml;
};
module.exports = exports['default'];
//# sourceMappingURL=checkstyleFormatter.js.map