kleros/kleros-v2

View on GitHub
web/.eslintrc.json

Summary

Maintainability
Test Coverage
{
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  },
  "root": true,
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2020,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react-hooks/recommended",
    "plugin:import/recommended",
    "plugin:import/react",
    "plugin:security/recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "prettier"
  ],
  "globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly"
  },
  "plugins": [
    "react",
    "react-hooks",
    "security",
    "import"
  ],
  "ignorePatterns": [
    "src/assets"
  ],
  "settings": {
    "react": {
      "version": "^16.12.0"
    },
    "import/resolver": {
      "typescript": {
        "project": "./tsconfig.json"
      }
    }
  },
  "rules": {
    "max-len": [
      "warn",
      {
        "code": 120
      }
    ],
    "react/prop-types": 0,
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": [
      "error",
      {
        "varsIgnorePattern": "(^_+[0-9]*$)|([iI]gnored$)|(^ignored)",
        "argsIgnorePattern": "(^_+[0-9]*$)|([iI]gnored$)|(^ignored)"
      }
    ],
    "no-console": [
      "error",
      {
        "allow": [
          "warn",
          "error",
          "info",
          "debug"
        ]
      }
    ],
    "@typescript-eslint/no-non-null-assertion": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "security/detect-object-injection": "off",
    "security/detect-non-literal-fs-filename": "off",
    "import/extensions": [
      "error",
      "ignorePackages",
      {
        "js": "never",
        "jsx": "never",
        "ts": "never",
        "tsx": "never"
      }
    ],
    "import/no-unresolved": "off",
    "import/order": [
      "warn",
      {
        "groups": [
          "builtin",
          "external",
          "internal",
          "parent",
          "sibling",
          "index"
        ],
        "pathGroups": [
          {
            "pattern": "{react,styled-components}",
            "group": "external",
            "position": "before"
          },
          {
            "pattern": "@kleros/**",
            "group": "external",
            "position": "after"
          },
          {
            "pattern": "{svgs/**,assets/**}",
            "group": "internal",
            "position": "after"
          },
          {
            "pattern": "{hooks/**,utils/**,consts/**,types/**,context/**,connectors/**,}",
            "group": "internal",
            "position": "after"
          },
          {
            "pattern": "{queries/**,}",
            "group": "internal",
            "position": "after"
          },
          {
            "pattern": "{src/**,}",
            "group": "internal",
            "position": "after"
          },
          {
            "pattern": "{styles/**,}",
            "group": "internal",
            "position": "after"
          },
          {
            "pattern": "{layout/**,pages/**,components/**,}",
            "group": "internal",
            "position": "after"
          }
        ],
        "pathGroupsExcludedImportTypes": [
          "builtin"
        ],
        "newlines-between": "always",
        "alphabetize": {
          "order": "asc",
          "caseInsensitive": true
        }
      }
    ]
  }
}