text: module.exports = {
    env: {
      browser: true,
      node: true,
      es2020: true,
    },
    parser: "@typescript-eslint/parser",
    parserOptions: {
      ecmaVersion: 2020,
      sourceType: "module",
      ecmaFeatures: {
        jsx: true,
      },
      project: './tsconfig.json',
    },
    plugins: ["@typescript-eslint", "react", "prettier"],
    extends: [
      "airbnb-typescript",
      "airbnb/hooks",
      "plugin:@typescript-eslint/recommended",
      "plugin:react/recommended",
      "plugin:import/errors",
      "plugin:import/warnings",
      "plugin:import/typescript",
      "prettier",
      "prettier/@typescript-eslint",
      "prettier/react",
    ],
    rules: {
      "react/jsx-filename-extension": [1, { extensions: [".ts", ".tsx"] }],
      "react/react-in-jsx-scope": "off",
      "import/extensions": "off",
      "react/prop-types": "off",
      "jsx-a11y/anchor-is-valid": "off",
      "react/jsx-props-no-spreading": ["error", { custom: "ignore" }],
      "prettier/prettier": "error",
      "react/no-unescaped-entities": "off",
      "import/no-cycle": [0, { ignoreExternal: true }],
      "prefer-const": "off",
      // needed because of https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md#how-to-use & https://stackoverflow.com/questions/63818415/react-was-used-before-it-was-defined
      "no-use-before-define": "off",
      "@typescript-eslint/no-use-before-define": [
        "error",
        { functions: false, classes: false, variables: true },
      ],
      "no-underscore-dangle": ["error", { "allow": ["_id", "__persistor", "_meta"] }]
  
    },
    globals: {
      "React": "writable"
    },
    settings: {
      "import/resolver": {
        "babel-module": {
          extensions: [".js", ".jsx", ".ts", ".tsx"],
        },
        node: {
          extensions: [".js", ".jsx", ".ts", ".tsx"],
          paths: ["src"],
        },
      },
    },
  };
  