canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS, CSS and JSON.
128 lines (93 loc) • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _constant2 = require('lodash/constant');
var _constant3 = _interopRequireDefault(_constant2);
var _filter2 = require('lodash/filter');
var _filter3 = _interopRequireDefault(_filter2);
var _map2 = require('lodash/map');
var _map3 = _interopRequireDefault(_map2);
var _forEach2 = require('lodash/forEach');
var _forEach3 = _interopRequireDefault(_forEach2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _table = require('table');
var _table2 = _interopRequireDefault(_table);
var _pluralize = require('pluralize');
var _pluralize2 = _interopRequireDefault(_pluralize);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var drawTable = function drawTable(messages) {
var rows = [];
if (messages.length === 0) {
return '';
}
rows.push([_chalk2.default.bold('Line'), _chalk2.default.bold('Column'), _chalk2.default.bold('Type'), _chalk2.default.bold('Message'), _chalk2.default.bold('Rule ID')]);
(0, _forEach3.default)(messages, function (message) {
var messageType = void 0;
if (message.fatal || message.severity === 2) {
messageType = _chalk2.default.red('error');
} else {
messageType = _chalk2.default.yellow('warning');
}
rows.push([message.line || 0, message.column || 0, messageType, message.message.replace(/\.$/, ''), message.ruleId || '']);
});
return (0, _table2.default)(rows, {
columns: {
0: {
width: 8,
wrapWord: true
},
1: {
width: 8,
wrapWord: true
},
2: {
width: 8,
wrapWord: true
},
3: {
paddingRight: 5,
width: 50,
wrapWord: true
},
4: {
width: 20,
wrapWord: true
}
},
drawHorizontalLine: function drawHorizontalLine(index) {
return index === 1;
}
});
};
var drawReport = function drawReport(results) {
var files = void 0;
files = (0, _map3.default)(results, function (result) {
if (!result.messages.length) {
return '';
}
return result.filePath + '\n\n' + drawTable(result.messages);
});
files = (0, _filter3.default)(files);
return files.join('\n');
};
exports.default = function (report) {
var result = void 0;
result = '';
if (report.errorCount || report.warningCount) {
result = drawReport(report.results);
}
result += '\n' + (0, _table2.default)([[_chalk2.default.red((0, _pluralize2.default)('Error', report.errorCount, true))], [_chalk2.default.yellow((0, _pluralize2.default)('Warning', report.warningCount, true))]], {
columns: {
0: {
width: 110,
wrapWord: true
}
},
drawHorizontalLine: (0, _constant3.default)(true)
});
return result;
};
module.exports = exports['default'];
//# sourceMappingURL=tableFormatter.js.map