diff --git a/index.js b/index.js new file mode 100644 index 0000000..2f94a01 --- /dev/null +++ b/index.js @@ -0,0 +1,50 @@ +import js from "@eslint/js"; +import tseslint from "@typescript-eslint/eslint-plugin"; +import tsParser from "@typescript-eslint/parser"; +import react from "eslint-plugin-react"; +import reactHooks from "eslint-plugin-react-hooks"; +import a11y from "eslint-plugin-jsx-a11y"; +import importPlugin from "eslint-plugin-import"; +import unusedImports from "eslint-plugin-unused-imports"; +export default [ + /* Core ESLint recommended rules */ + js.configs.recommended, + /* TypeScript recommended */ + { + files: ["**/*.ts", "**/*.tsx"], + languageOptions: { + parser: tsParser, + parserOptions: { + project: true + } + }, + plugins: { + "@typescript-eslint": tseslint + }, + ...tseslint.configs["recommended-type-checked"] + }, + /* React recommended */ + react.configs.flat.recommended, + /* React Hooks recommended */ + { + plugins: { "react-hooks": reactHooks }, + rules: { + ...reactHooks.configs.recommended.rules + } + }, + /* JSX Accessibility recommended */ + a11y.flatConfigs.recommended, + /* Import validation rules */ + importPlugin.flatConfigs.recommended, + /* Unused imports */ + { + plugins: { "unused-imports": unusedImports }, + rules: { + "unused-imports/no-unused-imports": "error", + "unused-imports/no-unused-vars": [ + "warn", + { argsIgnorePattern: "^_", varsIgnorePattern: "^_" } + ] + } + } +];