From cbbe14b8e59d2bf10840557797af1d2506236285 Mon Sep 17 00:00:00 2001 From: Anthony Boyd Date: Wed, 29 Jan 2025 01:07:18 +1100 Subject: [PATCH] fix(linter): add files entry to react flat configs to avoid applying TS rules to JSON files (#29457) This PR fixes an issue with React libs, where TS rules are being applied to JSON files. ## Current Behavior ## Expected Behavior ## Related Issue(s) Fixes #28245 --------- Co-authored-by: Colum Ferry --- .../src/flat-configs/react-base.ts | 10 ++++++++++ .../src/flat-configs/react-jsx.ts | 20 +++++++++++++++++++ .../src/flat-configs/react-typescript.ts | 10 ++++++++++ 3 files changed, 40 insertions(+) diff --git a/packages/eslint-plugin/src/flat-configs/react-base.ts b/packages/eslint-plugin/src/flat-configs/react-base.ts index 758eca0043abf..35c7105cf8d11 100644 --- a/packages/eslint-plugin/src/flat-configs/react-base.ts +++ b/packages/eslint-plugin/src/flat-configs/react-base.ts @@ -18,6 +18,16 @@ import tseslint from 'typescript-eslint'; * https://github.com/facebook/create-react-app/blob/567f36c9235f1e1fd4a76dc6d1ae00be754ca047/packages/eslint-config-react-app/index.js */ export default tseslint.config({ + files: [ + '**/*.ts', + '**/*.cts', + '**/*.mts', + '**/*.tsx', + '**/*.js', + '**/*.cjs', + '**/*.mjs', + '**/*.jsx', + ], plugins: { import: importPlugin }, languageOptions: { globals: { diff --git a/packages/eslint-plugin/src/flat-configs/react-jsx.ts b/packages/eslint-plugin/src/flat-configs/react-jsx.ts index 262f6826e9c09..e1c0d866838b0 100644 --- a/packages/eslint-plugin/src/flat-configs/react-jsx.ts +++ b/packages/eslint-plugin/src/flat-configs/react-jsx.ts @@ -15,12 +15,32 @@ import tseslint from 'typescript-eslint'; */ export default tseslint.config( { + files: [ + '**/*.ts', + '**/*.cts', + '**/*.mts', + '**/*.tsx', + '**/*.js', + '**/*.cjs', + '**/*.mjs', + '**/*.jsx', + ], plugins: { 'react-hooks': reactHooksPlugin, }, rules: reactHooksPlugin.configs.recommended.rules, }, { + files: [ + '**/*.ts', + '**/*.cts', + '**/*.mts', + '**/*.tsx', + '**/*.js', + '**/*.cjs', + '**/*.mjs', + '**/*.jsx', + ], settings: { react: { version: 'detect' } }, plugins: { 'jsx-a11y': jsxA11yPlugin, diff --git a/packages/eslint-plugin/src/flat-configs/react-typescript.ts b/packages/eslint-plugin/src/flat-configs/react-typescript.ts index 64e208309dbbd..2c333d027d983 100644 --- a/packages/eslint-plugin/src/flat-configs/react-typescript.ts +++ b/packages/eslint-plugin/src/flat-configs/react-typescript.ts @@ -11,6 +11,16 @@ import tseslint from 'typescript-eslint'; * package. */ export default tseslint.config({ + files: [ + '**/*.ts', + '**/*.cts', + '**/*.mts', + '**/*.tsx', + '**/*.js', + '**/*.cjs', + '**/*.mjs', + '**/*.jsx', + ], rules: { // TypeScript"s `noFallthroughCasesInSwitch` option is more robust (#6906) 'default-case': 'off',