module.exports = function (results) {
  results = results || [];

  const errorType = {
    warnings: {},
    errors: {},
  };

  results.reduce((result, current) => {
    current.messages.forEach((msg) => {
      if (msg.severity === 1) {
        errorType.warnings[msg.ruleId] = errorType.warnings[msg.ruleId] + 1 || 1
      }
      if (msg.severity === 2) {
        errorType.errors[msg.ruleId] = errorType.errors[msg.ruleId] + 1 || 1
      }
    });
    return result;
  });

  const reduceErrorCounts = (errorType) => Object.entries(errorType).sort((a, b) => b[1] - a[1])
    .reduce((result, current) => result.concat([`${current[0]}: ${current[1]}`]), []).join('\n');

  const warnings = reduceErrorCounts(errorType.warnings);
  const errors = reduceErrorCounts(errorType.errors);

  return `
Errors:
${'='.repeat(30)}
${errors}
${'\n'.repeat(4)}
Warnings:
${'='.repeat(30)}
${warnings}`;
};