From 4e3bf22e934640ec68f368846b741fadc33878dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikolai=20R=C3=B8ed=20Kristiansen?= Date: Fri, 5 Jul 2024 22:26:55 +0200 Subject: [PATCH] eslint: Autoremove unused imports Also clean config a bit --- .eslintrc.js | 20 +++++++++++--------- package-lock.json | 31 +++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 72b7c3b..0a68f4c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,20 +9,22 @@ module.exports = { 'plugin:import/warnings', ], rules: { - 'no-plusplus': 0, - 'no-console': 0, - 'no-underscore-dangle': 0, - 'no-param-reassign': 0, + 'no-plusplus': 'off', + 'no-console': 'off', + 'no-underscore-dangle': 'off', + 'no-param-reassign': 'off', + 'no-unused-vars': 'off', 'react/prefer-stateless-function': 1, 'react/prop-types': 'off', // FIXME: typescript - 'class-methods-use-this': 1, // FIXME: refactor - 'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }], - 'react/sort-comp': 0, - 'max-len': 0, + 'class-methods-use-this': 'error', // FIXME: refactor + 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.jsx'] }], + 'react/sort-comp': 'off', + 'max-len': 'off', 'no-use-before-define': ['error', { functions: true, classes: true, variables: false }], // disable the rule for variables, but enable it for functions and classes 'react-native/no-inline-styles': 'off', // FIXME: refactor + 'unused-imports/no-unused-imports': 'error', }, - plugins: ['prettier'], + plugins: ['prettier', 'unused-imports'], parser: '@babel/eslint-parser', settings: { react: { diff --git a/package-lock.json b/package-lock.json index e4d3fdd..b2557b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,6 +56,7 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.34.3", "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-unused-imports": "^3.2.0", "prettier": "^3.3.2" } }, @@ -11258,6 +11259,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/eslint-plugin-unused-imports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", + "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", + "dev": true, + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "6 - 7", + "eslint": "8" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", diff --git a/package.json b/package.json index 91c1f58..552e19a 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.34.3", "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-unused-imports": "^3.2.0", "prettier": "^3.3.2" }, "private": true