diff options
| author | Oskar <oskar@mullvad.net> | 2024-10-02 08:08:27 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2024-10-02 10:15:59 +0200 |
| commit | c0b514def3623964bcaace3cb06bad7762a3de04 (patch) | |
| tree | 6c5e0a854f0ac6bc8e9725759a097985731a72cb /gui | |
| parent | 1217112350515255c1933fe2e8192147d660b7f2 (diff) | |
| download | mullvadvpn-c0b514def3623964bcaace3cb06bad7762a3de04.tar.xz mullvadvpn-c0b514def3623964bcaace3cb06bad7762a3de04.zip | |
Add react hooks eslint plugin
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/eslint.config.mjs | 4 | ||||
| -rw-r--r-- | gui/package-lock.json | 20 | ||||
| -rw-r--r-- | gui/package.json | 1 |
3 files changed, 25 insertions, 0 deletions
diff --git a/gui/eslint.config.mjs b/gui/eslint.config.mjs index 5c2b5d848c..75f28f6091 100644 --- a/gui/eslint.config.mjs +++ b/gui/eslint.config.mjs @@ -1,6 +1,7 @@ import eslint from '@eslint/js'; import prettier from 'eslint-plugin-prettier/recommended'; import react from 'eslint-plugin-react'; +import reactHooks from 'eslint-plugin-react-hooks'; import simpleImportSort from 'eslint-plugin-simple-import-sort'; import globals from 'globals'; import tseslint from 'typescript-eslint'; @@ -128,6 +129,7 @@ export default tseslint.config( files: ['**/*.{js,mjs,ts,tsx}'], plugins: { 'simple-import-sort': simpleImportSort, + 'react-hooks': reactHooks, }, rules: { quotes: ['error', 'single', { avoidEscape: true }], @@ -144,6 +146,8 @@ export default tseslint.config( '@typescript-eslint/ban-ts-comment': ['error', { 'ts-ignore': false }], 'simple-import-sort/imports': 'error', + 'react-hooks/rules-of-hooks': 'error', + '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-non-null-assertion': 'off', diff --git a/gui/package-lock.json b/gui/package-lock.json index 6ff861c565..3f6bddbe34 100644 --- a/gui/package-lock.json +++ b/gui/package-lock.json @@ -56,6 +56,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.36.1", + "eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930", "eslint-plugin-simple-import-sort": "^12.1.1", "gettext-extractor": "^3.5.4", "globals": "^15.9.0", @@ -5216,6 +5217,18 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, + "node_modules/eslint-plugin-react-hooks": { + "version": "0.0.0-experimental-2d16326d-20240930", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-0.0.0-experimental-2d16326d-20240930.tgz", + "integrity": "sha512-6SrTdUGjhhQ51U6a695UlDFzR46pFlhz0yYyLrO5f4pXGHA0aE9X0TrqcB1gPyqB7LhSKjDSaoHC5/J48GG2UQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -18032,6 +18045,13 @@ } } }, + "eslint-plugin-react-hooks": { + "version": "0.0.0-experimental-2d16326d-20240930", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-0.0.0-experimental-2d16326d-20240930.tgz", + "integrity": "sha512-6SrTdUGjhhQ51U6a695UlDFzR46pFlhz0yYyLrO5f4pXGHA0aE9X0TrqcB1gPyqB7LhSKjDSaoHC5/J48GG2UQ==", + "dev": true, + "requires": {} + }, "eslint-plugin-simple-import-sort": { "version": "12.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", diff --git a/gui/package.json b/gui/package.json index 457a5a97d1..6298c01286 100644 --- a/gui/package.json +++ b/gui/package.json @@ -62,6 +62,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.36.1", + "eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930", "eslint-plugin-simple-import-sort": "^12.1.1", "gettext-extractor": "^3.5.4", "globals": "^15.9.0", |
