{
  "extends": [
    "next/core-web-vitals",
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "prettier"
  ],

  "plugins": [
    "react",
    "react-hooks",
    "@typescript-eslint",
    "prettier",
    "simple-import-sort"
  ],
  "parser": "@typescript-eslint/parser",

  "rules": {
    "no-extra-boolean-cast": "off",
    "react/no-unstable-nested-components": "off",
    "no-useless-escape": "error",
    "prefer-template": "error",
    "template-curly-spacing": ["error", "never"],
    "@typescript-eslint/comma-dangle": "off",
    "semi": ["error", "always"],
    "no-unused-expressions": "off",
    "prettier/prettier": "error",
    "react/react-in-jsx-scope": "off",
    "react/prop-types": "off",
    "simple-import-sort/imports": [
      "error",
      {
        "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)$"]
        ]
      }
    ],
    "simple-import-sort/exports": "error"
  },

  "ignorePatterns": ["node_modules", "build", "dist", "public"]
}
