12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import typescriptEslint from "@typescript-eslint/eslint-plugin";
- import reactHooks from "eslint-plugin-react-hooks";
- import tsdoc from "eslint-plugin-tsdoc";
- import { fixupPluginRules } from "@eslint/compat";
- import tsParser from "@typescript-eslint/parser";
- import path from "node:path";
- import { fileURLToPath } from "node:url";
- import js from "@eslint/js";
- import { FlatCompat } from "@eslint/eslintrc";
- const __filename = fileURLToPath(import.meta.url);
- const __dirname = path.dirname(__filename);
- const compat = new FlatCompat({
- baseDirectory: __dirname,
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all
- });
- export default [
- ...compat.extends("plugin:react/recommended", "plugin:@typescript-eslint/recommended"),
- {
- plugins: {
- "@typescript-eslint": typescriptEslint,
- "react-hooks": fixupPluginRules(reactHooks),
- tsdoc,
- },
- languageOptions: {
- parser: tsParser,
- ecmaVersion: 2018,
- sourceType: "module",
- parserOptions: {
- ecmaFeatures: {
- jsx: true,
- },
- },
- },
- settings: {
- react: {
- version: "detect",
- },
- },
- rules: {
- "@typescript-eslint/explicit-function-return-type": "off",
- "@typescript-eslint/explicit-module-boundary-types": "off",
- "@typescript-eslint/no-unused-expressions": "off",
- "react-hooks/rules-of-hooks": "error",
- "react-hooks/exhaustive-deps": "error",
- "tsdoc/syntax": "off",
- },
- },
- ];
|