diff --git a/packages/eslint-plugin/src/rules/no-restricted-imports.ts b/packages/eslint-plugin/src/rules/no-restricted-imports.ts index 7a583a01a1d..d7437cab76b 100644 --- a/packages/eslint-plugin/src/rules/no-restricted-imports.ts +++ b/packages/eslint-plugin/src/rules/no-restricted-imports.ts @@ -4,13 +4,13 @@ import { ArrayOfStringOrObjectPatterns, } from 'eslint/lib/rules/no-restricted-imports'; import ignore, { Ignore } from 'ignore'; -import { getESLintCoreRule } from '../util/getESLintCoreRule'; import { createRule, deepMerge, InferMessageIdsTypeFromRule, InferOptionsTypeFromRule, } from '../util'; +import { getESLintCoreRule } from '../util/getESLintCoreRule'; const baseRule = getESLintCoreRule('no-restricted-imports'); @@ -150,9 +150,12 @@ export default createRule({ } } function isAllowedTypeImportPattern(importSource: string): boolean { - return allowedImportTypeMatchers.every(matcher => { - return matcher.ignores(importSource); - }); + return ( + allowedImportTypeMatchers.length > 0 && + allowedImportTypeMatchers.every(matcher => { + return matcher.ignores(importSource); + }) + ); } return { diff --git a/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts b/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts index 143bfd95aae..059a7d1cad8 100644 --- a/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts +++ b/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts @@ -535,5 +535,19 @@ ruleTester.run('no-restricted-imports', rule, { }, ], }, + { + code: "import type { InvalidTestCase } from '@typescript-eslint/experimental-utils/dist/ts-eslint';", + options: [ + { + patterns: ['@typescript-eslint/experimental-utils/dist/*'], + }, + ], + errors: [ + { + messageId: 'patterns', + type: AST_NODE_TYPES.ImportDeclaration, + }, + ], + }, ], });