From bec23f36d23d227919433c45f0e071de9fbc3b20 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Thu, 22 Sep 2022 17:10:45 +0200 Subject: [PATCH] Add ESLint plugin for React hooks This will add the ESLint plugin for React hooks which will automatically check that all dependencies are listed in `useMemo`, `useEffect`, etc. See: https://www.npmjs.com/package/eslint-plugin-react-hooks --- extensions/ql-vscode/package-lock.json | 19 +++++++++++++++++++ extensions/ql-vscode/package.json | 1 + extensions/ql-vscode/src/stories/.eslintrc.js | 1 + extensions/ql-vscode/src/view/.eslintrc.js | 3 ++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/extensions/ql-vscode/package-lock.json b/extensions/ql-vscode/package-lock.json index dcf4321cb..80ba79c94 100644 --- a/extensions/ql-vscode/package-lock.json +++ b/extensions/ql-vscode/package-lock.json @@ -109,6 +109,7 @@ "eslint": "~6.8.0", "eslint-plugin-jest-dom": "^4.0.2", "eslint-plugin-react": "~7.19.0", + "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-storybook": "^0.6.4", "file-loader": "^6.2.0", "glob": "^7.1.4", @@ -20909,6 +20910,18 @@ "node": ">=4" } }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "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" + } + }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -56085,6 +56098,12 @@ } } }, + "eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true + }, "eslint-plugin-storybook": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.4.tgz", diff --git a/extensions/ql-vscode/package.json b/extensions/ql-vscode/package.json index 83cbdb81b..aa36a10c0 100644 --- a/extensions/ql-vscode/package.json +++ b/extensions/ql-vscode/package.json @@ -1305,6 +1305,7 @@ "eslint": "~6.8.0", "eslint-plugin-jest-dom": "^4.0.2", "eslint-plugin-react": "~7.19.0", + "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-storybook": "^0.6.4", "file-loader": "^6.2.0", "glob": "^7.1.4", diff --git a/extensions/ql-vscode/src/stories/.eslintrc.js b/extensions/ql-vscode/src/stories/.eslintrc.js index c9942904d..268bc24a0 100644 --- a/extensions/ql-vscode/src/stories/.eslintrc.js +++ b/extensions/ql-vscode/src/stories/.eslintrc.js @@ -4,6 +4,7 @@ module.exports = { }, extends: [ "plugin:react/recommended", + "plugin:react-hooks/recommended", "plugin:storybook/recommended", ], settings: { diff --git a/extensions/ql-vscode/src/view/.eslintrc.js b/extensions/ql-vscode/src/view/.eslintrc.js index 206871917..f18ecaa13 100644 --- a/extensions/ql-vscode/src/view/.eslintrc.js +++ b/extensions/ql-vscode/src/view/.eslintrc.js @@ -3,7 +3,8 @@ module.exports = { browser: true }, extends: [ - "plugin:react/recommended" + "plugin:react/recommended", + "plugin:react-hooks/recommended", ], settings: { react: {