{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "sourceType": "module",
    "extraFileExtensions": [".json"],
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:import/recommended",
    "plugin:import/typescript",
    "plugin:react-hooks/recommended",
    "plugin:prettier/recommended"
  ],
  "plugins": [
    "@typescript-eslint",
    "eslint-plugin-import",
    "eslint-plugin-node",
    "eslint-plugin-react",
    "eslint-plugin-react-hooks",
    "import"
  ],
  "rules": {
    "eqeqeq": 2,
    "no-mixed-operators": "off",
    "padding-line-between-statements": ["error", { "blankLine": "always", "prev": "*", "next": "export" }],
    "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }],
    "import/newline-after-import": 2,
    "import/order": [
      "error",
      {
        "alphabetize": {
          "order": "asc"
        },
        "pathGroups": [
          {
            "pattern": "@shared/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "@server/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/stores",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/stores/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/models/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/scenes/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/components/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "~/**",
            "group": "external",
            "position": "after"
          }
        ]
      }
    ],
    "prettier/prettier": [
      "error",
      {
        "printWidth": 80,
        "trailingComma": "es5"
      }
    ]
  },
  "settings": {
    "react": {
      "createClass": "createReactClass",
      "pragma": "React",
      "version": "detect"
    },
    "import/parsers": {
      "@typescript-eslint/parser": [".ts", ".tsx"]
    },
    "import/resolver": {
      "typescript": {}
    }
  },
  "globals": {
    "EDITOR_VERSION": true
  }
}