{
  "extends": [
    "tslint-react",
    "tslint-eslint-rules",
    "tslint-sonarts",
    "tslint-config-prettier"
  ],
  "defaultSeverity": "error",
  "rules": {
    "semicolon": false,
    "no-boolean-literal-compare": true,
    "no-console": [true, "log", "time", "trace"],
    "no-duplicate-variable": true,
    "no-return-await": true,
    "no-string-literal": true,
    "no-string-throw": true,
    "no-unnecessary-initializer": true,
    "no-var-keyword": true,
    "one-variable-per-declaration": [true, "ignore-for-loop"],
    "prefer-const": true,
    "triple-equals": [true, "allow-null-check", "allow-undefined-check"],
    "interface-over-type-literal": true,
    "space-within-parens": false,

    "jsx-no-multiline-js": false,
    "jsx-equals-spacing": false,
    "jsx-no-bind": true,
    "jsx-key": true,
    "jsx-no-lambda": true,
    "jsx-no-string-ref": true,
    "jsx-self-close": true,

    "cognitive-complexity": false,
    "no-duplicate-string": false,
    "no-big-function": false,
    "no-small-switch": false,
    "max-union-size": [true, 20],
    "parameters-max-number": false,
    "no-identical-functions": false,
    "member-ordering": [
      true,
      {
        "order": [
          "public-static-field",
          "protected-static-field",
          "private-static-field",
          "public-static-method",
          "protected-static-method",
          "private-static-method",
          "public-instance-field",
          "protected-instance-field",
          "private-instance-field",
          "public-constructor",
          "protected-constructor",
          "private-constructor",
          "public-instance-method",
          "protected-instance-method",
          "private-instance-method"
        ]
      }
    ]
  }
}
