{
  "extends": [
    "tslint:latest",
    "tslint-microsoft-contrib",
    "tslint-config-prettier",
    "tslint-react"
  ],
  "linterOptions": {
    "exclude": ["*.json", "**/*.json"]
  },
  "rulesDirectory": "./custom-rules",
  "rules": {
    "missing-jsdoc": false,
    "no-backbone-get-set-outside-model": false,
    "completed-docs": false,
    "no-implicit-dependencies": false,
    "no-submodule-imports": false,
    "no-default-export": false,
    "export-name": false,
    "quotemark": [true, "double", "avoid-escape"],
    "typedef": false,
    "trailing-comma": false,
    "no-angle-bracket-type-assertion": true,
    "prefer-type-cast": false,
    "match-default-export-name": false,
    "max-classes-per-file": false,
    "promise-function-async": false,
    "strict-boolean-expressions": false,
    "semicolon": [true, "always", "strict-bound-class-methods"],
    "align": false,
    "no-suspicious-comment": false,
    "no-increment-decrement": false,
    "no-invalid-this": false,
    "mocha-no-side-effect-code": false,
    "variable-name": [
      true,
      "ban-keywords",
      "check-format",
      "allow-pascal-case"
    ],
    "no-use-before-declare": false,
    "no-reserved-keywords": false,
    "no-relative-imports": [true, "allow-siblings"],
    "newline-before-return": false,
    "no-unnecessary-local-variable": false,
    "max-func-body-length": false,
    "prefer-readonly": false,
    "radix": false,
    "no-import-side-effect": [
      true,
      { "ignore-module": "^jest-dom/extend-expect$|^jest-extended|^@testing-library/jest-dom/extend-expect$" }
    ],
    "interface-name": false,
    "max-line-length": false,
    "function-name": [
      true,
      {
        "method-regex": "^[a-z][\\w\\d]+$",
        "private-method-regex": "^[a-z][\\w\\d]+$",
        "protected-method-regex": "^[a-z][\\w\\d]+$",
        "static-method-regex": "^[a-z][\\w\\d]+$",
        "function-regex": "^[a-z][\\w\\d]+$"
      }
    ],
    "no-null-keyword": false,
    "no-void-expression": false,
    "no-void-expression-smart": [
      true,
      "ignore-arrow-function-shorthand",
      { "ignore-patterns": ["graphql`"] }
    ],
    "no-empty": [true, "allow-empty-functions"],
    "jsx-no-bind": true,
    "no-unnecessary-callback-wrapper": false,
    "insecure-random": false,
    "no-console": [true, "log", "time", "table", "timeEnd"],
    "no-this-assignment": [true, { "allow-destructuring": true }],
    "react-unused-props-and-state": false,
    "import-name": [
      true,
      null,
      {
        "netlify-cms-app": "CMS",
        "classnames": "cn"
      },
      null,
      { "ignoreExternalModule": false, "case": "any-case" }
    ],
    "use-simple-attributes": false,
    "no-empty-interface": false,
    "jsx-boolean-value": [true, "never"],
    "jsx-no-multiline-js": false,
    "jsx-alignment": false,
    "jsx-wrap-multiline": false,
    "no-typeof-undefined": false,
    "no-non-null-assertion": false,
    "react-a11y-anchors": false,
    "jsx-ban-props": [true, ["fill-rule"]]
  },
  "jsRules": {
    "max-line-length": false
  }
}
