From 639b8970f94653b2e7a45826aa0aa1a08e19ab14 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 10 Apr 2024 17:27:15 +0100 Subject: [PATCH] adding lint rule for console.error --- .eslintrc.json | 3 ++- eslint-local-rules/index.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index 525072dc6c..fce6a9e27d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -43,7 +43,8 @@ "rules": { "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "error", - "local-rules/no-budibase-imports": "error" + "local-rules/no-budibase-imports": "error", + "local-rules/no-console-error": "error" } }, { diff --git a/eslint-local-rules/index.js b/eslint-local-rules/index.js index a4866bc1f8..d80aaf096d 100644 --- a/eslint-local-rules/index.js +++ b/eslint-local-rules/index.js @@ -1,4 +1,24 @@ module.exports = { + "no-console-error": { + create: function(context) { + return { + CallExpression(node) { + if ( + node.callee.type === "MemberExpression" && + node.callee.object.name === "console" && + node.callee.property.name === "error" && + node.arguments.length === 1 && + node.arguments[0].name.startsWith("err") + ) { + context.report({ + node, + message: 'Using console.error(err) on its own is not allowed. Either provide context to the error (console.error(msg, err)) or throw it.', + }) + } + }, + }; + }, + }, "no-budibase-imports": { create: function (context) { return {