From ffb02f4bf6e8627d0b909c27818e993d6e906dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Sun, 18 Jun 2023 21:22:33 +0200 Subject: [PATCH 1/3] feat: update eslint config in React templates --- .../create-vite/template-react-ts/.eslintrc.cjs | 17 +++++++++++++++-- .../create-vite/template-react-ts/src/main.tsx | 2 +- .../create-vite/template-react/.eslintrc.cjs | 5 ++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/create-vite/template-react-ts/.eslintrc.cjs b/packages/create-vite/template-react-ts/.eslintrc.cjs index 4020bcbf409dd2..e90de44dd1b8c5 100644 --- a/packages/create-vite/template-react-ts/.eslintrc.cjs +++ b/packages/create-vite/template-react-ts/.eslintrc.cjs @@ -1,14 +1,27 @@ module.exports = { + root: true, env: { browser: true, es2020: true }, extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/recommended-requiring-type-checking', 'plugin:react-hooks/recommended', ], parser: '@typescript-eslint/parser', - parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: true, + tsconfigRootDir: __dirname, + }, plugins: ['react-refresh'], rules: { - 'react-refresh/only-export-components': 'warn', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-unnecessary-condition': 'warn', + '@typescript-eslint/non-nullable-type-assertion-style': 'warn', }, } diff --git a/packages/create-vite/template-react-ts/src/main.tsx b/packages/create-vite/template-react-ts/src/main.tsx index 91c03f3fb20c1e..3d7150da80e43e 100644 --- a/packages/create-vite/template-react-ts/src/main.tsx +++ b/packages/create-vite/template-react-ts/src/main.tsx @@ -3,7 +3,7 @@ import ReactDOM from 'react-dom/client' import App from './App.tsx' import './index.css' -ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( +ReactDOM.createRoot(document.getElementById('root')!).render( , diff --git a/packages/create-vite/template-react/.eslintrc.cjs b/packages/create-vite/template-react/.eslintrc.cjs index ec601b2ceaac71..bf2227d719b6e7 100644 --- a/packages/create-vite/template-react/.eslintrc.cjs +++ b/packages/create-vite/template-react/.eslintrc.cjs @@ -10,6 +10,9 @@ module.exports = { settings: { react: { version: '18.2' } }, plugins: ['react-refresh'], rules: { - 'react-refresh/only-export-components': 'warn', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], }, } From e3784cbd7ed6d81489bb3167ee5736df83d93bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Thu, 29 Jun 2023 09:13:14 +0200 Subject: [PATCH 2/3] fix: remove extra config for now --- packages/create-vite/template-react-ts/.eslintrc.cjs | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/create-vite/template-react-ts/.eslintrc.cjs b/packages/create-vite/template-react-ts/.eslintrc.cjs index e90de44dd1b8c5..d9b8f04c1d712a 100644 --- a/packages/create-vite/template-react-ts/.eslintrc.cjs +++ b/packages/create-vite/template-react-ts/.eslintrc.cjs @@ -21,7 +21,5 @@ module.exports = { { allowConstantExport: true }, ], '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-unnecessary-condition': 'warn', - '@typescript-eslint/non-nullable-type-assertion-style': 'warn', }, } From 09b32f4b3cb7616040fc46566b16667d30eb1513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Thu, 29 Jun 2023 09:42:51 +0200 Subject: [PATCH 3/3] also change in the preact template --- packages/create-vite/template-preact-ts/src/main.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-vite/template-preact-ts/src/main.tsx b/packages/create-vite/template-preact-ts/src/main.tsx index 125b2d586a34bc..846cd1e988102e 100644 --- a/packages/create-vite/template-preact-ts/src/main.tsx +++ b/packages/create-vite/template-preact-ts/src/main.tsx @@ -2,4 +2,4 @@ import { render } from 'preact' import { App } from './app.tsx' import './index.css' -render(, document.getElementById('app') as HTMLElement) +render(, document.getElementById('app')!)