From c9cd6fc0cc7f29b1b0fcfc03f57a12feed0250e2 Mon Sep 17 00:00:00 2001 From: Sebastian Brenner Date: Sat, 3 Jan 2026 20:37:36 +0100 Subject: [PATCH] make eslint 9 compliant --- package.json | 3 +-- src/index.js | 52 +++++++++++++++++----------------------------------- 2 files changed, 18 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 0d401d6..7b55f31 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sebastianbrenner/eslint-config", - "version": "1.0.5", + "version": "1.1.0", "type": "module", "main": "./index.js", "scripts": { @@ -12,7 +12,6 @@ }, "peerDependencies": { "typescript": "5", - "@typescript-eslint/eslint-plugin": "8.48.1", "@typescript-eslint/parser": "8.48.1", "eslint": "^9.0.0", "eslint-plugin-import": "2.32.0", diff --git a/src/index.js b/src/index.js index c093a03..920c290 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,5 @@ import js from "@eslint/js"; -import tseslint from "@typescript-eslint/eslint-plugin"; -import tsParser from "@typescript-eslint/parser"; +import tseslint from "typescript-eslint"; import react from "eslint-plugin-react"; import reactHooks from "eslint-plugin-react-hooks"; import a11y from "eslint-plugin-jsx-a11y"; @@ -11,54 +10,37 @@ export default [ /* Core ESLint recommended rules */ js.configs.recommended, - /* TypeScript recommended */ - { - files: ["**/*.ts", "**/*.tsx"], - languageOptions: { - parser: tsParser, - parserOptions: { - project: true - } - }, - plugins: { - "@typescript-eslint": tseslint - }, + /* TypeScript (flat, type-checked) */ + ...tseslint.configs.recommendedTypeChecked, - ...tseslint.configs["recommended-type-checked"] - }, - - /* React recommended */ + /* React */ react.configs.flat.recommended, - /* React Hooks recommended */ + /* React Hooks */ { - plugins: { "react-hooks": reactHooks }, - rules: { - ...reactHooks.configs.recommended.rules - } + plugins: { + "react-hooks": reactHooks, + }, + rules: reactHooks.configs.recommended.rules, }, - - /* JSX Accessibility recommended */ + /* JSX Accessibility */ a11y.flatConfigs.recommended, - /* Import validation rules */ + /* Import rules */ importPlugin.flatConfigs.recommended, /* Unused imports */ { - plugins: { "unused-imports": unusedImports }, + plugins: { + "unused-imports": unusedImports, + }, rules: { "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": [ "warn", - { argsIgnorePattern: "^_", varsIgnorePattern: "^_" } + { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], - '@stylistic/indent': ['error', 4], - '@stylistic/semi': ['error', 'always'], - '@stylistic/quotes': ['error', 'single', { avoidEscape: true }], - '@stylistic/no-trailing-spaces': 'error', - '@stylistic/no-multiple-empty-lines': 'error', - } - } + }, + }, ];