Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / scripts / js / eslint-stats-by-type.js
diff --git a/web/core/scripts/js/eslint-stats-by-type.js b/web/core/scripts/js/eslint-stats-by-type.js
new file mode 100644 (file)
index 0000000..7ca6a13
--- /dev/null
@@ -0,0 +1,35 @@
+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}`;
+};