feat: setup eslint with typescript and react rules, add unused imports plugin

This commit is contained in:
Haileyesus
2026-03-05 17:04:51 +03:00
parent 7802eb0cac
commit 525c9f72ca
3 changed files with 1318 additions and 3 deletions

50
eslint.config.js Normal file
View File

@@ -0,0 +1,50 @@
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import reactHooks from "eslint-plugin-react-hooks";
import unusedImports from "eslint-plugin-unused-imports";
import globals from "globals";
export default tseslint.config(
{
ignores: ["dist/**", "node_modules/**", "public/**"],
},
{
files: ["src/**/*.{ts,tsx,js,jsx}"],
extends: [js.configs.recommended, ...tseslint.configs.recommended],
plugins: {
"react-hooks": reactHooks,
"unused-imports": unusedImports,
},
languageOptions: {
globals: {
...globals.browser,
},
},
rules: {
// Remove unused imports automatically
"unused-imports/no-unused-imports": "warn",
// Flag unused variables (ignoring those prefixed with _)
"unused-imports/no-unused-vars": [
"warn",
{
vars: "all",
varsIgnorePattern: "^_",
args: "after-used",
argsIgnorePattern: "^_",
},
],
// Disable the base rules so they don't conflict
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "off",
// Disable rules the user didn't ask for
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-require-imports": "off",
"no-case-declarations": "off",
"no-control-regex": "off",
"no-useless-escape": "off",
},
}
);