From 0040186aa23692724986df22a71926e8a7ff9e02 Mon Sep 17 00:00:00 2001 From: asdf93074 Date: Sun, 28 Nov 2021 22:43:18 +0500 Subject: [PATCH] fix(eslint-plugin): [no-var-requires] do not report require created from createRequire (#4221) --- packages/eslint-plugin/src/rules/no-var-requires.ts | 13 +++++++++---- .../tests/rules/no-var-requires.test.ts | 5 +++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-var-requires.ts b/packages/eslint-plugin/src/rules/no-var-requires.ts index b599d4cb87a..1bf51efe810 100644 --- a/packages/eslint-plugin/src/rules/no-var-requires.ts +++ b/packages/eslint-plugin/src/rules/no-var-requires.ts @@ -1,4 +1,5 @@ import { + ASTUtils, AST_NODE_TYPES, TSESTree, } from '@typescript-eslint/experimental-utils'; @@ -43,10 +44,14 @@ export default util.createRule({ AST_NODE_TYPES.VariableDeclarator, ].includes(parent.type) ) { - context.report({ - node, - messageId: 'noVarReqs', - }); + const variable = ASTUtils.findVariable(context.getScope(), 'require'); + + if (!variable?.identifiers.length) { + context.report({ + node, + messageId: 'noVarReqs', + }); + } } }, }; diff --git a/packages/eslint-plugin/tests/rules/no-var-requires.test.ts b/packages/eslint-plugin/tests/rules/no-var-requires.test.ts index 8c6ef638a16..1e38c482218 100644 --- a/packages/eslint-plugin/tests/rules/no-var-requires.test.ts +++ b/packages/eslint-plugin/tests/rules/no-var-requires.test.ts @@ -10,6 +10,11 @@ ruleTester.run('no-var-requires', rule, { "import foo = require('foo');", "require('foo');", "require?.('foo');", + ` +import { createRequire } from 'module'; +const require = createRequire('foo'); +const json = require('./some.json'); + `, ], invalid: [ {