summaryrefslogtreecommitdiffhomepage
path: root/frontend/.eslintrc.json
blob: 97b3d3de59105af360278cd1475a4b181788d562 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
{
  "rules": {
    "no-console": "error",
    "camelcase": "warn",
    "no-restricted-imports": [
      "error",
      {
        "patterns": ["..*"]
      }
    ],
    "simple-import-sort/imports": "error",
    "@typescript-eslint/explicit-module-boundary-types": "off",
    "@typescript-eslint/no-empty-function": "warn",
    "@typescript-eslint/no-empty-interface": "off",
    "@typescript-eslint/no-unused-vars": "warn"
  },
  "extends": [
    "react-app",
    "plugin:react-hooks/recommended",
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "plugins": ["testing-library", "simple-import-sort"],
  "overrides": [
    {
      "files": [
        "**/__tests__/**/*.[jt]s?(x)",
        "**/?(*.)+(spec|test).[jt]s?(x)"
      ],
      "extends": ["plugin:testing-library/react"]
    },
    {
      "files": ["*.ts", "*.tsx"],
      "rules": {
        "simple-import-sort/imports": [
          "error",
          {
            "groups": [
              [
                // React Packages
                "^react",
                // Mantine Packages
                "^@mantine/",
                // Vendor Packages
                "^(\\w|@\\w)",
                // Side Effect Imports
                "^\\u0000",
                // Internal Packages
                "^@/\\w",
                // Parent Imports
                "^\\.\\.(?!/?$)",
                "^\\.\\./?$",
                // Relative Imports
                "^\\./(?=.*/)(?!/?$)",
                "^\\.(?!/?$)",
                "^\\./?$",
                // Style Imports
                "^.+\\.?(css)$"
              ]
            ]
          }
        ]
      }
    }
  ],
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": "latest"
  }
}