{
  "root": true,
  "ignorePatterns": ["**/*"],
  "plugins": ["@nrwl/nx", "eslint-plugin-unicorn", "jsx-a11y", "jest"],
  "settings": {
    "jsx-a11y": {
      "components": {
        "Button": "button",
        "Input": "input",
        "Select": "select",
        "Radio": "radio",
        "TextArea": "textarea"
      }
    }
  },
  "overrides": [
    {
      "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
      "extends": ["plugin:jsx-a11y/strict"],
      "rules": {
        "@nrwl/nx/enforce-module-boundaries": [
          "error",
          {
            "enforceBuildableLibDependency": true,
            "allow": [],
            "depConstraints": [
              {
                "sourceTag": "*",
                "onlyDependOnLibsWithTags": ["*"]
              }
            ]
          }
        ],
        "unicorn/filename-case": [
          "error",
          {
            "case": "kebabCase",
            "ignore": ["\\[[a-zA-Z]+\\]\\.page"]
          }
        ],
        "no-restricted-imports": [
          "warn",
          {
            "name": "lodash",
            "message": "Import the specific methods you need from lodash e.g. `import get from 'lodash/get'`. This helps with bundle sizing."
          }
        ],
        "jsx-a11y/no-redundant-roles": [
          "error",
          {
            "ul": ["list"],
            "ol": ["list"]
          }
        ]
      }
    },
    {
      "files": ["*.ts", "*.tsx"],
      "extends": ["plugin:@nrwl/nx/typescript"],
      "rules": {
        "@typescript-eslint/ban-ts-comment": [
          "error",
          {
            "ts-expect-error": "allow-with-description",
            "ts-ignore": "allow-with-description",
            "ts-nocheck": true,
            "ts-check": false,
            "minimumDescriptionLength": 10
          }
        ],
        "@typescript-eslint/consistent-type-imports": [
          "error",
          {
            "prefer": "type-imports",
            "disallowTypeAnnotations": true
          }
        ],
        "curly": ["error", "multi-line"]
      }
    },
    {
      "files": ["*.spec.ts", "*.spec.tsx"],
      "extends": ["plugin:@nrwl/nx/typescript", "plugin:jest/recommended"],
      "rules": {
        "jest/consistent-test-it": ["error", { "fn": "it" }]
      }
    },
    {
      "files": ["*.js", "*.jsx"],
      "extends": ["plugin:@nrwl/nx/javascript"],
      "rules": {}
    }
  ]
}