X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=.config%2Fcoc%2Fextensions%2Fnode_modules%2Fcoc-prettier%2Fnode_modules%2Feslint%2Flib%2Fcli-engine%2Fformatters%2Fhtml.js;h=baddb63079de4503e6745b466fe8a80e0852eaa4;hb=3be0a9efc698a9570a44456009afc6014812625a;hp=69f7395550f2e2678120a958f5784c9db4e909e0;hpb=3aba54c891969552833dbc350b3139e944e17a97;p=dotfiles%2F.git
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/eslint/lib/cli-engine/formatters/html.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/eslint/lib/cli-engine/formatters/html.js
index 69f73955..baddb630 100644
--- a/.config/coc/extensions/node_modules/coc-prettier/node_modules/eslint/lib/cli-engine/formatters/html.js
+++ b/.config/coc/extensions/node_modules/coc-prettier/node_modules/eslint/lib/cli-engine/formatters/html.js
@@ -4,17 +4,153 @@
*/
"use strict";
-const lodash = require("lodash");
-const fs = require("fs");
-const path = require("path");
-
//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
-const pageTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-page.html"), "utf-8"));
-const messageTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-message.html"), "utf-8"));
-const resultTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-result.html"), "utf-8"));
+const encodeHTML = (function() {
+ const encodeHTMLRules = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ '"': """,
+ "'": "'"
+ };
+ const matchHTML = /[&<>"']/ug;
+
+ return function(code) {
+ return code
+ ? code.toString().replace(matchHTML, m => encodeHTMLRules[m] || m)
+ : "";
+ };
+}());
+
+/**
+ * Get the final HTML document.
+ * @param {Object} it data for the document.
+ * @returns {string} HTML document.
+ */
+function pageTemplate(it) {
+ const { reportColor, reportSummary, date, results } = it;
+
+ return `
+
+
+
+
+ ESLint Report
+
+
+
+
+
ESLint Report
+
+ ${reportSummary} - Generated on ${date}
+
+
+
+
+
+
+`.trimLeft();
+}
/**
* Given a word and a count, append an s if count is not one.
@@ -58,6 +194,35 @@ function renderColor(totalErrors, totalWarnings) {
return 0;
}
+/**
+ * Get HTML (table row) describing a single message.
+ * @param {Object} it data for the message.
+ * @returns {string} HTML (table row) describing the message.
+ */
+function messageTemplate(it) {
+ const {
+ parentIndex,
+ lineNumber,
+ columnNumber,
+ severityNumber,
+ severityName,
+ message,
+ ruleUrl,
+ ruleId
+ } = it;
+
+ return `
+
+ ${lineNumber}:${columnNumber} |
+ ${severityName} |
+ ${encodeHTML(message)} |
+
+ ${ruleId ? ruleId : ""}
+ |
+
+`.trimLeft();
+}
+
/**
* Get HTML (table rows) describing the messages.
* @param {Array} messages Messages.
@@ -72,7 +237,7 @@ function renderMessages(messages, parentIndex, rulesMeta) {
* @param {Object} message Message.
* @returns {string} HTML (table row) describing a message.
*/
- return lodash.map(messages, message => {
+ return messages.map(message => {
const lineNumber = message.line || 0;
const columnNumber = message.column || 0;
let ruleUrl;
@@ -80,7 +245,9 @@ function renderMessages(messages, parentIndex, rulesMeta) {
if (rulesMeta) {
const meta = rulesMeta[message.ruleId];
- ruleUrl = lodash.get(meta, "docs.url", null);
+ if (meta && meta.docs && meta.docs.url) {
+ ruleUrl = meta.docs.url;
+ }
}
return messageTemplate({
@@ -96,6 +263,24 @@ function renderMessages(messages, parentIndex, rulesMeta) {
}).join("\n");
}
+/**
+ * Get HTML (table row) describing the result for a single file.
+ * @param {Object} it data for the file.
+ * @returns {string} HTML (table row) describing the result for the file.
+ */
+function resultTemplate(it) {
+ const { color, index, filePath, summary } = it;
+
+ return `
+
+
+ [+] ${encodeHTML(filePath)}
+ ${encodeHTML(summary)}
+ |
+
+`.trimLeft();
+}
+
// eslint-disable-next-line jsdoc/require-description
/**
* @param {Array} results Test results.
@@ -103,12 +288,11 @@ function renderMessages(messages, parentIndex, rulesMeta) {
* @returns {string} HTML string describing the results.
*/
function renderResults(results, rulesMeta) {
- return lodash.map(results, (result, index) => resultTemplate({
+ return results.map((result, index) => resultTemplate({
index,
color: renderColor(result.errorCount, result.warningCount),
filePath: result.filePath,
summary: renderSummary(result.errorCount, result.warningCount)
-
}) + renderMessages(result.messages, index, rulesMeta)).join("\n");
}