From 5fae8a5703f1338c5d86ba320081e49d620dfd87 Mon Sep 17 00:00:00 2001 From: David Ng Date: Wed, 10 May 2023 12:45:14 +0100 Subject: [PATCH] fix: missing import recognise tsx extension (#97) --- .gitignore | 3 ++- lib/util/is-typescript.js | 2 +- lib/util/map-typescript-extension.js | 2 ++ tests/fixtures/file-extension-in-import/e.tsx | 0 tests/fixtures/no-missing/e.tsx | 0 tests/lib/rules/file-extension-in-import.js | 5 +++++ tests/lib/rules/no-missing-import.js | 4 ++++ 7 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/file-extension-in-import/e.tsx create mode 100644 tests/fixtures/no-missing/e.tsx diff --git a/.gitignore b/.gitignore index fedf77f4..06e79ef5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ /node_modules /test.js .eslintcache -.vscode \ No newline at end of file +.vscode +.idea/ \ No newline at end of file diff --git a/lib/util/is-typescript.js b/lib/util/is-typescript.js index a61a1377..479397cc 100644 --- a/lib/util/is-typescript.js +++ b/lib/util/is-typescript.js @@ -2,7 +2,7 @@ const path = require("path") -const typescriptExtensions = [".ts", ".cts", ".mts"] +const typescriptExtensions = [".ts", ".tsx", ".cts", ".mts"] /** * Determine if the context source file is typescript. diff --git a/lib/util/map-typescript-extension.js b/lib/util/map-typescript-extension.js index ecd3d9f2..fe428004 100644 --- a/lib/util/map-typescript-extension.js +++ b/lib/util/map-typescript-extension.js @@ -8,12 +8,14 @@ const mapping = { ".ts": ".js", ".cts": ".cjs", ".mts": ".mjs", + ".tsx": ".jsx", } const reverseMapping = { ".js": ".ts", ".cjs": ".cts", ".mjs": ".mts", + ".jsx": ".tsx", } /** diff --git a/tests/fixtures/file-extension-in-import/e.tsx b/tests/fixtures/file-extension-in-import/e.tsx new file mode 100644 index 00000000..e69de29b diff --git a/tests/fixtures/no-missing/e.tsx b/tests/fixtures/no-missing/e.tsx new file mode 100644 index 00000000..e69de29b diff --git a/tests/lib/rules/file-extension-in-import.js b/tests/lib/rules/file-extension-in-import.js index 651097f6..30ccb160 100644 --- a/tests/lib/rules/file-extension-in-import.js +++ b/tests/lib/rules/file-extension-in-import.js @@ -96,6 +96,11 @@ new RuleTester({ code: "import './c.mjs'", options: ["always"], }, + { + filename: fixture("test.tsx"), + code: "import './d.jsx'", + options: ["always"], + }, { filename: fixture("test.js"), code: "import './a'", diff --git a/tests/lib/rules/no-missing-import.js b/tests/lib/rules/no-missing-import.js index 82f221f9..4a054061 100644 --- a/tests/lib/rules/no-missing-import.js +++ b/tests/lib/rules/no-missing-import.js @@ -98,6 +98,10 @@ ruleTester.run("no-missing-import", rule, { filename: fixture("test.js"), code: "import mocha from 'mocha!foo?a=b&c=d';", }, + { + filename: fixture("test.tsx"), + code: "import a from './e.jsx';", + }, // Ignores it if the filename is unknown. "import abc from 'no-exist-package-0';",