tslint.json 4.7 KB
{
  "rulesDirectory": ["./node_modules/codelyzer"],
  "rules": {
    "align": [
      true,
      "statements"
    ],
    "array-type": [
      true,
      "array" 
    ],
    "arrow-parens": true,
    "ban": [
      true,
      []
    ],
    "class-name": true,
    "comment-format": [
      true,
      "check-space"
    ],
    "curly": true,
    "eofline": true,
    "forin": false,
    "indent": [
      true,
      "spaces"
    ],
    "interface-name": [
      true,
      "always-prefix"
    ],
    "jsdoc-format": true,
    "label-position": true,
    "max-line-length": [true, 150],
    "member-access": [
      false
    ],
    "member-ordering": [
      true,
      {
        "order" : [
          "private-static-field",
          "protected-static-field",
          "public-static-field",
          "private-instance-field",
          "protected-instance-field",
          "public-instance-field",
          "constructor",
          "public-static-method",
          "protected-static-method",
          "private-static-method",
          "public-instance-method",
          "protected-instance-method",
          "private-instance-method"
        ]
      }
    ],
    "new-parens": true,
    "no-angle-bracket-type-assertion": false,
    "no-any": false,
    "no-arg": true,
    "no-bitwise": true,
    "no-conditional-assignment": true,
    "no-consecutive-blank-lines": [true],
    "no-console": [
      true, 
      "assert", 
      "count", 
      "debug", 
      "dir", 
      "dirxml", 
      "error", 
      "group",
      "groupCollapsed",
      "groupEnd",
      "info",
      "log",
      "profile",
      "profileEnd",
      "table",
      "time",
      "timeEnd",
      "timeStamp",
      "trace",
      "warn"
    ],
    "no-construct": true,
    "no-debugger": true,
    "no-default-export": true,
    "no-duplicate-variable": true,
    "no-empty": true,
    "no-empty-interface": false,
    "no-eval": true,
    "no-inferrable-types": [
      false,
      "ignore-params"
    ],
    "no-internal-module": true,
    "no-invalid-this": true,
    "no-magic-numbers": false, //TODO_LINT (we should lint for this)
    "no-namespace": true,
    "no-null-keyword": true,
    "no-reference": true,
    "no-require-imports": true,
    "no-shadowed-variable": true,
    "no-string-literal": true,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-trailing-whitespace": true,
    "no-unused-expression": true,
    "no-use-before-declare": true,
    "no-var-keyword": true,
    "no-var-requires": true,
    "object-literal-sort-keys": false,
    "one-line": [
      true,
      "check-catch",
      "check-finally",
      "check-else",
      "check-open-brace",
      "check-whitespace"
    ],
    "one-variable-per-declaration": true,
    "quotemark": [
      true,
      "single",
      "avoid-escape"
    ],
    "radix": true,
    "semicolon": [
      true,
      "always"
    ],
    "switch-default": true,
    "trailing-comma": [
      true,
      {
        "multiline": "always",
        "single": "always"
      }
    ],
    "triple-equals": true,
    "typedef": [
      true,
      "call-signature",
      "parameter",
      "arrow-parameter",
      "property-declaration",
      "variable-declaration",
      "member-variable-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"
      }
    ],
    "use-isnan": true,
    "variable-name": [
      true,
      "ban-keywords",
      "check-format",
      "allow-leading-underscore"
    ],
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-module",
      "check-separator",
      "check-type"
    ],
    // ANGULAR 2 Rules
    "directive-selector": [true, "attribute", "qs", "camelCase"],
    "component-selector": [true, "element", "qs", "kebab-case"],
    "component-class-suffix": true,
    "directive-class-suffix": true,
    "use-input-property-decorator": true,
    "use-output-property-decorator": true,
    "use-host-property-decorator": true,
    "no-attribute-parameter-decorator": true,
    "no-input-rename": false, // so we can rename @Input so we can change API easier -> @Input('rename') name
    "no-output-rename": false, // same but for @Output
    "no-forward-ref" : false,
    "use-life-cycle-interface": true,
    "use-pipe-transform-interface": true,
    "pipe-naming": [
      true,
      "camelCase"
    ]
  }
}