UNPKG

canonical

Version:

Canonical code style linter and formatter for JavaScript, SCSS, CSS and JSON.

128 lines (93 loc) 3.26 kB
'use strict'; 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