{
  "root": true,
  "ignorePatterns": ["**/*"],
  "plugins": ["@nrwl/nx"],
  "overrides": [
    {
      "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
      "rules": {
        "@nrwl/nx/enforce-module-boundaries": [
          "error",
          {
            "enforceBuildableLibDependency": true,
            "allow": [],
            "depConstraints": [
              {
                "sourceTag": "*",
                "onlyDependOnLibsWithTags": ["*"]
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["*.ts", "*.tsx"],
      "extends": ["plugin:@nrwl/nx/typescript"],
      "rules": {}
    },
    {
      "files": ["*.js", "*.jsx"],
      "extends": ["plugin:@nrwl/nx/javascript"],
      "rules": {}
    }
  ],
  "rules": {
    "linebreak-style": ["off"],
    "quotes": ["error", "single"],
    "@typescript-eslint/indent": [
      "error",
      4,
      {
        "SwitchCase": 1
      }
    ],
    "array-bracket-spacing": ["error", "always"],
    "brace-style": ["error", "allman"],
    "template-curly-spacing": ["error", "always"],
    "no-multi-spaces": ["error"],
    "@typescript-eslint/object-curly-spacing": [
      "error",
      "always",
      {
        "arraysInObjects": true,
        "objectsInObjects": false
      }
    ],
    "@typescript-eslint/ban-types": [
      "error",
      {
        "types": {
          "String": true,
          "Boolean": true,
          "Number": true,
          "Symbol": true,
          "{}": false,
          "Object": false,
          "object": false,
          "Function": false
        },
        "extendDefaults": true
      }
    ],
    "no-switch-case-fall-through": ["off"],
    "jsx-quotes": ["error"],
    "react/prop-types": ["off"],
    "react/jsx-curly-spacing": [
      "error",
      {
        "when": "always",
        "children": true
      }
    ],
    "react/jsx-equals-spacing": ["error"],
    "react/jsx-newline": [
      "error",
      {
        "prevent": true
      }
    ]
  }
}
