canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS and CSS.
75 lines (55 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _forEach = require('lodash/collection/forEach');
var _forEach2 = _interopRequireDefault(_forEach);
var _xmlbuilder = require('xmlbuilder');
var _xmlbuilder2 = _interopRequireDefault(_xmlbuilder);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var getMessageType = undefined;
/**
* @param {lintText~message} message
* @returns {string}
*/
getMessageType = function (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, _forEach2.default)(report.results, function (fileReport) {
var fileNode = undefined;
if (!fileReport.messages.length) {
return;
}
fileNode = xml.ele('file', {
name: fileReport.filePath
});
(0, _forEach2.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=checkstyle.js.map