UNPKG

lint-filter

Version:
77 lines (62 loc) 2.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.preFormatter = preFormatter; exports.generateStats = generateStats; exports.formatOutput = formatOutput; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _checkstyle = require('./checkstyle'); var _checkstyle2 = _interopRequireDefault(_checkstyle); var _text = require('./text'); var _text2 = _interopRequireDefault(_text); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var formatters = { checkstyle: _checkstyle2.default, text: _text2.default }; function preFormatter(data) { return _lodash2.default.filter(_lodash2.default.map(_lodash2.default.groupBy(data, 'file'), function (value, key) { if (!_lodash2.default.isEmpty(_lodash2.default.filter(value, 'isInDiff'))) { return { filename: key, messages: _lodash2.default.filter(value, 'isInDiff').map(function (item) { return _lodash2.default.omit(item, ['isInDiff', 'file']); }) }; } return null; })); } function generateStats(data) { return { errors: { total: _lodash2.default.filter(data, { severity: 'error' }).length, in: _lodash2.default.filter(data, { severity: 'error', isInDiff: true }).length, out: _lodash2.default.filter(data, { severity: 'error', isInDiff: false }).length }, warnings: { total: _lodash2.default.filter(data, { severity: 'warning' }).length, in: _lodash2.default.filter(data, { severity: 'warning', isInDiff: true }).length, out: _lodash2.default.filter(data, { severity: 'warning', isInDiff: false }).length } }; } function formatOutput(format, data) { var formatter = void 0; if (/^require:/.test(format)) { // $SuppressFlow somehow flow marks the returned of replace as any formatter = require(format.replace(/^require:/, '')); // eslint-disable-line global-require if (formatter.default) { formatter = formatter.default; } } if (_lodash2.default.has(formatters, format)) { formatter = formatters[format]; } if (formatter) { return formatter(preFormatter(data), generateStats(data)); } throw new Error('Could not find formatter: \'' + format + '\''); }