summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/formatters/visualstudio.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/lib/formatters/visualstudio.js')
-rw-r--r--tools/node_modules/eslint/lib/formatters/visualstudio.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/lib/formatters/visualstudio.js b/tools/node_modules/eslint/lib/formatters/visualstudio.js
new file mode 100644
index 0000000000..0d49431db8
--- /dev/null
+++ b/tools/node_modules/eslint/lib/formatters/visualstudio.js
@@ -0,0 +1,63 @@
+/**
+ * @fileoverview Visual Studio compatible formatter
+ * @author Ronald Pijnacker
+ */
+
+"use strict";
+
+//------------------------------------------------------------------------------
+// Helper Functions
+//------------------------------------------------------------------------------
+
+/**
+ * Returns the severity of warning or error
+ * @param {Object} message message object to examine
+ * @returns {string} severity level
+ * @private
+ */
+function getMessageType(message) {
+ if (message.fatal || message.severity === 2) {
+ return "error";
+ }
+ return "warning";
+
+}
+
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+module.exports = function(results) {
+
+ let output = "",
+ total = 0;
+
+ results.forEach(result => {
+
+ const messages = result.messages;
+
+ total += messages.length;
+
+ messages.forEach(message => {
+
+ output += result.filePath;
+ output += `(${message.line || 0}`;
+ output += message.column ? `,${message.column}` : "";
+ output += `): ${getMessageType(message)}`;
+ output += message.ruleId ? ` ${message.ruleId}` : "";
+ output += ` : ${message.message}`;
+ output += "\n";
+
+ });
+
+ });
+
+ if (total === 0) {
+ output += "no problems";
+ } else {
+ output += `\n${total} problem${total !== 1 ? "s" : ""}`;
+ }
+
+ return output;
+};