{
  "env": {
    "es2020": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    // "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "react-app",
    "react-app/jest"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 2020,
    "ecmaFeatures": { "jsx": true }
  },
  "plugins": [
    // "import",
    "simple-import-sort",
    "react",
    "react-hooks",
    // "@typescript-eslint",
    "prettier"
  ],
  "rules": {
    "no-unused-expressions": "off",
    "@typescript-eslint/no-unused-expressions": 2,
    "@typescript-eslint/triple-slash-reference": "off",
    "simple-import-sort/imports": "error",
    "simple-import-sort/exports": "error"
  },

  "overrides": [
    {
      "files": [".*rc.js", "*.config.js"],
      "env": {
        "node": true
      }
    },
    {
      "files": ["*.js", "*.jsx", "*.ts", "*.tsx"],
      "rules": {
        "simple-import-sort/imports": [
          "warn",
          {
            "groups": [
              // Packages `react` related packages come first.
              ["^react", "^@?\\w"],
              // Internal packages.
              ["^(@|components)(/.*|$)"],
              // Side effect imports.
              ["^\\u0000"],
              // Parent imports. Put `..` last.
              ["^\\.\\.(?!/?$)", "^\\.\\./?$"],
              // Other relative imports. Put same-folder imports and `.` last.
              ["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"],
              // Style imports.
              ["^.+\\.?(css)$"]
            ]
          }
        ]
      }
    }
  ]
}
