{
  "extends": [
    "tslint-config-airbnb",
    "tslint-config-prettier"
  ],
  "rules": {
    "file-name-casing": [true, "kebab-case"],
    "only-arrow-functions": true,
    "no-reference": true,
    "typedef": [
      true,
      "property-declaration"
    ],
    "typedef-whitespace": [
      true,
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      },
      {
        "call-signature": "onespace",
        "index-signature": "onespace",
        "parameter": "onespace",
        "property-declaration": "onespace",
        "variable-declaration": "onespace"
      }
    ],
    "trailing-comma": [
      true,
      {
        "multiline": {
          "objects": "always",
          "arrays": "always",
          "functions": "ignore",
          "typeLiterals": "ignore"
        },
        "singleline": "ignore"
      }
    ],
    "no-duplicate-variable": true,
    "no-empty": true,
    "no-eval": true,
    "no-null-keyword": false,
    "no-shadowed-variable": false,
    "no-use-before-declare": false,
    "no-var-keyword": true,
    "switch-default": true,
    "triple-equals": true,
    "use-isnan": true,
    "prefer-const": true,
    "class-name": true,
    "no-angle-bracket-type-assertion": false,
    "no-consecutive-blank-lines": true,
    "no-console": [
      true,
      "log",
      "error"
    ],
    "quotemark": [
      true,
      "single",
      "jsx-double"
    ],
    "whitespace": [
      true,
      "check-decl",
      "check-operator",
      "check-module",
      "check-type"
    ],
    "interface-name": [
      true,
      "always-prefix"
    ],
    "member-ordering": [
      true,
      {
        "order": [
          "public-static-field",
          "public-instance-field",
          "private-instance-field",
          "public-constructor",
          "private-static-field",
          "private-constructor",
          "public-instance-method",
          "protected-instance-method",
          "private-instance-method"
        ]
      }
    ],
    "ordered-imports": [
      true,
      {
        "import-sources-order": "case-insensitive",
        "named-imports-order": "case-insensitive"
      }
    ],
    "semicolon": true,
    "curly": true,
    "indent": [
      true,
      "spaces",
      4
    ],
    "max-line-length": [
      true,
      {
        "limit": 140,
        "ignore-pattern": "^import |^export {(.*?)}"
      }
    ],
    "no-unused-expression": true,
    "one-line": [
      true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-whitespace"
    ],
    "no-require-imports": true,
    "no-return-await": true,
    "no-duplicate-imports": true,
    "no-duplicate-switch-case": true,
    "no-switch-case-fall-through": true,
    "arrow-return-shorthand": true,
    "no-increment-decrement": false,
    "triple-equals": true,
    "no-boolean-literal-compare": false
  },
  "linterOptions": {
    "exclude": [
      "package.json",
      "node_modules/**"
    ]
  }
}
