From 5fc2198b377e589582f7fc2ab314fb11fc75648a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Mon, 8 Jan 2024 18:44:22 +0800 Subject: [PATCH] fix: no-callback-literal ignore unknown nodes (#163) fixes #162 --- lib/rules/no-callback-literal.js | 6 +++--- tests/lib/rules/no-callback-literal.js | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/rules/no-callback-literal.js b/lib/rules/no-callback-literal.js index f05da2b6..a8ee0471 100644 --- a/lib/rules/no-callback-literal.js +++ b/lib/rules/no-callback-literal.js @@ -62,7 +62,8 @@ function couldBeError(node) { case "TaggedTemplateExpression": case "YieldExpression": return true // possibly an error object. - + case "Literal": + return node.value == null case "AssignmentExpression": return couldBeError(node.right) @@ -76,8 +77,7 @@ function couldBeError(node) { case "ConditionalExpression": return couldBeError(node.consequent) || couldBeError(node.alternate) - default: - return node.value === null + return true // assuming unknown nodes can be error objects. } } diff --git a/tests/lib/rules/no-callback-literal.js b/tests/lib/rules/no-callback-literal.js index 42f5b6bf..b8fa370d 100644 --- a/tests/lib/rules/no-callback-literal.js +++ b/tests/lib/rules/no-callback-literal.js @@ -6,6 +6,7 @@ const RuleTester = require("eslint").RuleTester const rule = require("../../../lib/rules/no-callback-literal") +const tsParser = require("@typescript-eslint/parser") const ruleTester = new RuleTester({ env: { node: true, es6: true } }) ruleTester.run("no-callback-literal", rule, { @@ -40,6 +41,11 @@ ruleTester.run("no-callback-literal", rule, { "cb(null)", 'cb(undefined, "super")', 'cb(null, "super")', + // https://github.com/eslint-community/eslint-plugin-n/issues/162 + { + code: "cb(e as Error)", + languageOptions: { parser: tsParser }, + }, ], invalid: [