From 25fafe5657372b6f0b905c3bfbf913ba66d58242 Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Tue, 21 Sep 2021 06:10:48 +0900 Subject: [PATCH] fix: check if import source is a string --- .../eslint-plugin/src/rules/no-restricted-imports.ts | 12 +++++++++--- .../tests/rules/no-restricted-imports.test.ts | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-restricted-imports.ts b/packages/eslint-plugin/src/rules/no-restricted-imports.ts index f62b4659578..2a01a54c62e 100644 --- a/packages/eslint-plugin/src/rules/no-restricted-imports.ts +++ b/packages/eslint-plugin/src/rules/no-restricted-imports.ts @@ -151,8 +151,11 @@ export default createRule({ return { ImportDeclaration(node): void { + if (typeof node.source.value !== 'string') { + return; + } if (node.importKind === 'type') { - const importSource = (node.source.value as string).trim(); + const importSource = node.source.value.trim(); if ( !isAllowedTypeImportPath(importSource) && !isAllowedTypeImportPattern(importSource) @@ -164,11 +167,14 @@ export default createRule({ } }, ExportNamedDeclaration(node): void { - if (node.source?.type !== AST_NODE_TYPES.Literal) { + if ( + node.source?.type !== AST_NODE_TYPES.Literal || + typeof node.source.value !== 'string' + ) { return; } if (node.exportKind === 'type') { - const importSource = (node.source.value as string).trim(); + const importSource = node.source.value.trim(); if ( !isAllowedTypeImportPath(importSource) && !isAllowedTypeImportPattern(importSource) 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 6d2bdeeb44e..a2c5951a8d1 100644 --- a/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts +++ b/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts @@ -220,6 +220,10 @@ ruleTester.run('no-restricted-imports', rule, { code: 'export { foo } from foo;', options: ['import1', 'import2'], }, + { + code: 'import { foo } from foo;', + options: ['import1', 'import2'], + }, ], invalid: [ {