cloudfoundry-incubator/stratos

View on GitHub
.eslintrc

Summary

Maintainability
Test Coverage
---
env:
  browser: true
  node: true
  jasmine: true
  phantomjs: true
  protractor: true
  es6: false


globals:
  angular: false


plugins:
  - angular


rules:
  #############################################################################
  # Possible Errors
  #############################################################################

  # Disallow or enforce trailing commas
  # http://eslint.org/docs/rules/comma-dangle
  comma-dangle:
    - 2
    - "never"

  # Disallow assignment in conditional expressions
  # http://eslint.org/docs/rules/no-cond-assign
  no-cond-assign: 2

  # Disallow use of console in the node environment
  # http://eslint.org/docs/rules/no-console
  no-console: 2

  # Disallow use of constant expressions in conditions
  # http://eslint.org/docs/rules/no-constant-condition
  no-constant-condition: 2

  # Disallow control characters in regular expressions
  # http://eslint.org/docs/rules/no-control-regex
  no-control-regex: 2

  # Disallow use of debugger
  # http://eslint.org/docs/rules/no-debugger
  no-debugger: 2

  # Disallow duplicate arguments in functions
  # http://eslint.org/docs/rules/no-dupe-args
  no-dupe-args: 2

  # Disallow duplicate keys when creating object literals
  # http://eslint.org/docs/rules/no-dupe-keys
  no-dupe-keys: 2

  # Disallow a duplicate case label
  # http://eslint.org/docs/rules/no-duplicate-case
  no-duplicate-case: 2

  # Disallow the use of empty character classes in regular expressions
  # http://eslint.org/docs/rules/no-empty-character-class
  no-empty-character-class: 2

  # Disallow empty statements
  # http://eslint.org/docs/rules/no-empty
  no-empty: 2

  # Disallow assigning to the exception in a catch block
  # http://eslint.org/docs/rules/no-ex-assign
  no-ex-assign: 2

  # Disallow double-negation boolean casts in a boolean context
  # http://eslint.org/docs/rules/no-extra-boolean-cast
  no-extra-boolean-cast: 2

  # Disallow unnecessary parentheses
  # http://eslint.org/docs/rules/no-extra-parens
  no-extra-parens:
    - 2
    - "all"

  # Disallow unnecessary semicolons
  # http://eslint.org/docs/rules/no-extra-semi
  no-extra-semi: 2

  # Disallow overwriting functions written as function declarations
  # http://eslint.org/docs/rules/no-func-assign
  no-func-assign: 2

  # Disallow function or variable declarations in nested blocks
  # http://eslint.org/docs/rules/no-inner-declarations
  no-inner-declarations: 2

  # Disallow invalid regular expression strings in the RegExp constructor
  # http://eslint.org/docs/rules/no-invalid-regexp
  no-invalid-regexp: 2

  # Disallow irregular whitespace outside of strings and comments
  # http://eslint.org/docs/rules/no-irregular-whitespace
  no-irregular-whitespace: 2

  # Disallow negation of the left operand of an in expression
  # http://eslint.org/docs/rules/no-negated-in-lhs
  no-negated-in-lhs: 2

  # Disallow the use of object properties of the global object (Math and JSON) as functions
  # http://eslint.org/docs/rules/no-obj-calls
  no-obj-calls: 2

  # Disallow multiple spaces in a regular expression literal
  # http://eslint.org/docs/rules/no-regex-spaces
  no-regex-spaces: 2

  # Disallow sparse arrays
  # http://eslint.org/docs/rules/no-sparse-arrays
  no-sparse-arrays: 2

  # Avoid code that looks like two expressions but is actually one
  # http://eslint.org/docs/rules/no-unexpected-multiline
  no-unexpected-multiline: 0

  # Disallow unreachable statements after a return, throw, continue, or break statement
  # http://eslint.org/docs/rules/no-unreachable
  no-unreachable: 2

  # Disallow comparisons with the value NaN
  # http://eslint.org/docs/rules/use-isnan
  use-isnan: 2

  # Ensure JSDoc comments are valid
  # http://eslint.org/docs/rules/valid-jsdoc
  # NOTE: the "requireReturn" parameter is very poorly labeled
  #       It really means "require return only when a return is present"
  valid-jsdoc: [1, {"prefer": {"return": "returns"}, "requireReturn": false, "requireReturnDescription": false}]

  # Ensure that the results of typeof are compared against a valid string
  # http://eslint.org/docs/rules/valid-typeof
  valid-typeof: 2


  #############################################################################
  # Best Practices
  #############################################################################

  # Enforces getter/setter pairs in objects
  # http://eslint.org/docs/rules/accessor-pairs
  accessor-pairs: 2

  # Treat var statements as if they were block scoped
  # http://eslint.org/docs/rules/block-scoped-var
  block-scoped-var: 2

  # Specify the maximum cyclomatic complexity allowed in a program
  # http://eslint.org/docs/rules/complexity
  complexity:
    - 1
    - 10

  # Require return statements to either always or never specify values
  # http://eslint.org/docs/rules/consistent-return
  consistent-return: 0

  # Specify curly brace conventions for all control statements
  # http://eslint.org/docs/rules/curly
  curly: 2

  # Require default case in switch statements
  # http://eslint.org/docs/rules/default-case
  default-case: 0

  # encourages use of dot notation whenever possible
  # http://eslint.org/docs/rules/dot-notation
  dot-notation: 2

  # Enforces consistent newlines before or after dots
  # http://eslint.org/docs/rules/dot-location
  dot-location: 0

  # Require the use of === and !==
  # http://eslint.org/docs/rules/eqeqeq
  eqeqeq: 2

  # Make sure for-in loops have an if statement
  # http://eslint.org/docs/rules/guard-for-in
  guard-for-in: 1

  # Disallow the use of alert, confirm, and prompt
  # http://eslint.org/docs/rules/no-alert
  no-alert: 2

  # Disallow use of arguments.caller or arguments.callee
  # http://eslint.org/docs/rules/no-caller
  no-caller: 2

  # Disallow division operators explicitly at beginning of regular expression
  # http://eslint.org/docs/rules/no-div-regex
  no-div-regex: 2

  # Disallow else after a return in an if
  # http://eslint.org/docs/rules/no-else-return
  no-else-return: 0

  # Disallow use of labels for anything other then loops and switches
  # http://eslint.org/docs/rules/no-labels
  no-labels:
    - 2
    - {allowLoop: true, allowSwitch: true}

  # Disallow use of empty destructuring patterns
  # http://eslint.org/docs/rules/no-empty-pattern
  no-empty-pattern: 0

  # Disallow comparisons to null without a type-checking operator
  # http://eslint.org/docs/rules/no-eq-null
  no-eq-null: 2

  # Disallow use of eval()
  # http://eslint.org/docs/rules/no-eval
  no-eval: 2

  # Disallow adding to native types
  # http://eslint.org/docs/rules/no-extend-native
  no-extend-native: 2

  # Disallow unnecessary function binding
  # http://eslint.org/docs/rules/no-extra-bind
  no-extra-bind: 2

  # Disallow fallthrough of case statements
  # http://eslint.org/docs/rules/no-fallthrough
  no-fallthrough: 2

  # Disallow the use of leading or trailing decimal points in numeric literals
  # http://eslint.org/docs/rules/no-floating-decimal
  no-floating-decimal: 2

  # disallow the type conversions with shorter notations
  # http://eslint.org/docs/rules/no-implicit-coercion
  no-implicit-coercion: 0

  # Disallow use of eval()-like methods
  # http://eslint.org/docs/rules/no-implied-eval
  no-implied-eval: 2

  # disallow this keywords outside of classes or class-like objects
  # http://eslint.org/docs/rules/no-invalid-this
  no-invalid-this: 0

  # Disallow usage of __iterator__ property
  # http://eslint.org/docs/rules/no-iterator
  no-iterator: 2

  # Disallow unnecessary nested blocks
  # http://eslint.org/docs/rules/no-lone-blocks
  no-lone-blocks: 2

  # Disallow creation of functions within loops
  # http://eslint.org/docs/rules/no-loop-func
  no-loop-func: 2

  # Disallow the use of magic numbers
  # http://eslint.org/docs/rules/no-magic-numbers
  no-magic-numbers: 0

  # Disallow use of multiple spaces
  # http://eslint.org/docs/rules/no-multi-spaces
  no-multi-spaces: 2

  # Disallow use of multiline strings
  # http://eslint.org/docs/rules/no-multi-str
  no-multi-str: 2

  # Disallow reassignments of native objects
  # http://eslint.org/docs/rules/no-native-reassign
  no-native-reassign: 2

  # Disallow use of new operator for Function object
  # http://eslint.org/docs/rules/no-new-func
  no-new-func: 2

  # Disallows creating new instances of String,Number, and Boolean
  # http://eslint.org/docs/rules/no-new-wrappers
  no-new-wrappers: 2

  # Disallow use of new operator when not part of the assignment or comparison
  # http://eslint.org/docs/rules/no-new
  no-new: 2

  # Disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251";
  # http://eslint.org/docs/rules/no-octal-escape
  no-octal-escape: 2

  # Disallow use of octal literals
  # http://eslint.org/docs/rules/no-octal
  no-octal: 2

  # Disallow reassignment of function parameters
  # http://eslint.org/docs/rules/no-param-reassign
  no-param-reassign: 0

  # Disallow use of process.env
  #
  # Please consolidate all your env access to one single file, and apply
  # by-line exceptions there.
  #
  # http://eslint.org/docs/rules/no-process-env
  no-process-env: 2

  # Disallow usage of __proto__ property
  # http://eslint.org/docs/rules/no-proto
  no-proto: 2

  # Disallow declaring the same variable more than once
  # http://eslint.org/docs/rules/no-redeclare
  no-redeclare: 2

  # Disallow use of assignment in return statement
  # http://eslint.org/docs/rules/no-return-assign
  no-return-assign: 2

  # Disallow use of javascript: urls.
  # http://eslint.org/docs/rules/no-script-url
  no-script-url: 2

  # Disallow comparisons where both sides are exactly the same
  # http://eslint.org/docs/rules/no-self-compare
  no-self-compare: 2

  # Disallow use of comma operator
  # http://eslint.org/docs/rules/no-sequences
  no-sequences: 2

  # Restrict what can be thrown as an exception
  # http://eslint.org/docs/rules/no-throw-literal
  no-throw-literal: 2

  # Disallow usage of expressions in statement position
  # http://eslint.org/docs/rules/no-unused-expressions
  no-unused-expressions: 2

  # disallow unnecessary .call() and .apply()
  # http://eslint.org/docs/rules/no-useless-call
  no-useless-call: 0

  # disallow unnecessary concatenation of literals or template literals
  # http://eslint.org/docs/rules/no-useless-concat
  no-useless-concat: 0

  # Disallow use of void operator
  # http://eslint.org/docs/rules/no-void
  no-void: 2

  # Disallow usage of configurable warning terms in comments - e.g. TODO
  # http://eslint.org/docs/rules/no-warning-comments
  no-warning-comments:
    - 1
    - terms:
      - "todo"
      - "xxx"
      - "fixme"

  # Disallow use of the with statement
  # http://eslint.org/docs/rules/no-with
  no-with: 2

  # Require use of the second argument for parseInt()
  # http://eslint.org/docs/rules/radix
  radix: 2

  # Requires to declare all vars on top of their containing scope
  #
  # http://eslint.org/docs/rules/vars-on-top
  vars-on-top: 0

  # Require immediate function invocation to be wrapped in parentheses
  # http://eslint.org/docs/rules/wrap-iife
  wrap-iife:
    - 2
    - "any"

  # Require or disallow Yoda conditions.
  # http://eslint.org/docs/rules/yoda
  yoda: 0


  #############################################################################
  # Strict Mode
  #############################################################################

  # Controls location of Use Strict Directives
  # http://eslint.org/docs/rules/strict
  strict:
    - 2
    - "function"


  #############################################################################
  # Variables
  #############################################################################

  # Enforce or disallow variable initializations at definition
  # http://eslint.org/docs/rules/init-declarations
  init-declarations: 0

  # Disallow the catch clause parameter name being the same as a variable in
  # the outer scope
  # http://eslint.org/docs/rules/no-catch-shadow
  no-catch-shadow: 2

  # Disallow deletion of variables
  # http://eslint.org/docs/rules/no-delete-var
  no-delete-var: 2

  # Disallow labels that share a name with a variable
  # http://eslint.org/docs/rules/no-label-var
  no-label-var: 2

  # Disallow shadowing of names such as arguments
  # http://eslint.org/docs/rules/no-shadow-restricted-names
  no-shadow-restricted-names: 2

  # Disallow declaration of variables already declared in the outer scope
  # http://eslint.org/docs/rules/no-shadow
  no-shadow: 0

  # Disallow use of undefined when initializing variables
  # http://eslint.org/docs/rules/no-undef-init
  no-undef-init: 2

  # Disallow use of undeclared variables unless mentioned in a /*global */ block
  # http://eslint.org/docs/rules/no-undef
  no-undef: 0

  # Disallow use of undefined variable
  # http://eslint.org/docs/rules/no-undefined
  no-undefined: 0

  # Disallow declaration of variables that are not used in the code
  # http://eslint.org/docs/rules/no-unused-vars
  no-unused-vars: 2

  # Disallow use of variables before they are defined
  # http://eslint.org/docs/rules/no-use-before-define
  no-use-before-define:
    - 2
    - "nofunc"


  #############################################################################
  # Node.js and Common.JS
  #############################################################################

  # Enforce return after a callback
  # http://eslint.org/docs/rules/callback-return
  callback-return: 2

  # Enforce require() on top-level module scope
  # http://eslint.org/docs/rules/global-require
  global-require: 0

  # Enforce error handling in callbacks
  # http://eslint.org/docs/rules/handle-callback-err
  handle-callback-err: 2

  # Disallow mixing regular variable and require declarations
  # http://eslint.org/docs/rules/no-mixed-requires
  no-mixed-requires: 2

  # Disallow use of new operator with the require function
  # http://eslint.org/docs/rules/no-new-require
  no-new-require: 2

  # Disallow string concatenation with __dirname and __filename
  # http://eslint.org/docs/rules/no-path-concat
  no-path-concat: 2

  # Disallow process.exit()
  # http://eslint.org/docs/rules/no-process-exit
  no-process-exit: 2

  # Restrict usage of specified node modules
  # http://eslint.org/docs/rules/no-restricted-modules
  no-restricted-modules: 0

  # Disallow use of synchronous methods
  # http://eslint.org/docs/rules/no-sync
  no-sync: 2


  #############################################################################
  # Stylistic Issues
  #############################################################################

  # Enforce spacing inside array brackets
  # http://eslint.org/docs/rules/array-bracket-spacing
  array-bracket-spacing: 0

  # Disallow or enforce spaces inside of single line blocks
  # http://eslint.org/docs/rules/block-spacing
  block-spacing: 0

  # Enforce one true brace style
  # http://eslint.org/docs/rules/brace-style
  brace-style:
   - 2
   - "1tbs"
   - allowSingleLine: true

  # Require camel case names
  # http://eslint.org/docs/rules/camelcase
  camelcase:
   - 2
   - properties: "never"

  # Enforce spacing before and after comma
  # http://eslint.org/docs/rules/comma-spacing
  comma-spacing: 0

  # Enforce one true comma style
  # http://eslint.org/docs/rules/comma-style
  comma-style: 2

  # Require or disallow padding inside computed properties
  # http://eslint.org/docs/rules/computed-property-spacing
  computed-property-spacing: 0

  # Enforce consistent naming when capturing the current execution context
  # http://eslint.org/docs/rules/consistent-this
  consistent-this:
    - 0
    - "self"

  # Enforce newline at the end of file, with no multiple empty lines
  # http://eslint.org/docs/rules/eol-last
  eol-last: 2

  # Require function expressions to have a name
  # http://eslint.org/docs/rules/func-names
  func-names: 0

  # Enforce use of function declarations or expressions
  # http://eslint.org/docs/rules/func-style
  func-style: 0

  # This option enforces minimum and maximum identifier lengths (variable names, property names...)
  # http://eslint.org/docs/rules/id-length
  id-length: 0

  # Require identifiers to match the provided regular expression
  # http://eslint.org/docs/rules/id-match
  id-match: 0

  # Specify tab or space width for your code
  # http://eslint.org/docs/rules/indent
  indent:
    - 2
    - 2
    - SwitchCase: 1

  # Specify whether double or single quotes should be used in JSX attributes
  # http://eslint.org/docs/rules/jsx-quotes
  jsx-quotes: 0

  # Enforce spacing between keys and values in object literal properties
  # http://eslint.org/docs/rules/key-spacing
  key-spacing: 0

  # Disallow mixed 'LF' and 'CRLF' as linebreaks
  # http://eslint.org/docs/rules/linebreak-style
  linebreak-style:
    - 2
    - "unix"

  # Enforce empty lines around comments
  # http://eslint.org/docs/rules/lines-around-comment
  lines-around-comment: 0

  # Specify the maximum depth that blocks can be nested
  # http://eslint.org/docs/rules/max-depth
  max-depth: 0

  # Specify the maximum length of a line in your program
  # http://eslint.org/docs/rules/max-len
  max-len: 0

  # Specify the maximum depth callbacks can be nested
  # http://eslint.org/docs/rules/max-nested-callbacks
  max-nested-callbacks:
    - 0
    - 3

  # Limits the number of parameters that can be used in the function declaration
  # http://eslint.org/docs/rules/max-params
  max-params: 0

  # Specify the maximum number of statement allowed in a function
  # http://eslint.org/docs/rules/max-statements
  max-statements: 0

  # Require a capital letter for constructors
  # http://eslint.org/docs/rules/new-cap
  new-cap: 0

  # Disallow the omission of parentheses when invoking a constructor with no arguments
  # http://eslint.org/docs/rules/new-parens
  new-parens: 2

  # Require or disallow an empty newline after variable declarations
  # http://eslint.org/docs/rules/newline-after-var
  newline-after-var: 0

  # Disallow use of the Array constructor
  # http://eslint.org/docs/rules/no-array-constructor
  no-array-constructor: 0

  # Disallow use of bitwise operators
  # http://eslint.org/docs/rules/no-bitwise
  no-bitwise: 0

  # Disallow use of the continue statement
  # http://eslint.org/docs/rules/no-continue
  no-continue: 0

  # Disallow comments inline after code
  # http://eslint.org/docs/rules/no-inline-comments
  no-inline-comments: 0

  # Disallow if as the only statement in an else block
  # http://eslint.org/docs/rules/no-lonely-if
  no-lonely-if: 0

  # Disallow mixed spaces and tabs for indentation
  # http://eslint.org/docs/rules/no-mixed-spaces-and-tabs
  no-mixed-spaces-and-tabs: 2

  # Disallow multiple empty lines
  # http://eslint.org/docs/rules/no-multiple-empty-lines
  no-multiple-empty-lines:
    - 2
    - max: 1

  # Disallow nested ternary expressions
  # http://eslint.org/docs/rules/no-nested-ternary
  no-nested-ternary: 0

  # Disallow the use of the Object constructor
  # http://eslint.org/docs/rules/no-new-object
  no-new-object: 1

  # Disallow use of unary operators, ++ and --
  # http://eslint.org/docs/rules/no-plusplus
  no-plusplus: 0

  # Disallow use of certain syntax in code
  # http://eslint.org/docs/rules/no-restricted-syntax
  no-restricted-syntax: 0

  # Disallow space between function identifier and application
  # http://eslint.org/docs/rules/no-spaced-func
  no-spaced-func: 0

  # Disallow the use of ternary operators
  # http://eslint.org/docs/rules/no-ternary
  no-ternary: 0

  # Disallow trailing whitespace at the end of lines
  # http://eslint.org/docs/rules/no-trailing-spaces
  no-trailing-spaces: 2

  # Disallow dangling underscores in identifiers
  # http://eslint.org/docs/rules/no-underscore-dangle
  no-underscore-dangle: 0

  # Disallow the use of ternary operators when a simpler alternative exists
  # http://eslint.org/docs/rules/no-unneeded-ternary
  no-unneeded-ternary: 2

  # Require or disallow padding inside curly braces
  # http://eslint.org/docs/rules/object-curly-spacing
  object-curly-spacing: 0

  # Require or disallow one variable declaration per function
  # http://eslint.org/docs/rules/one-var
  one-var:
    - 2
    - uninitialized: "always"
      initialized: "never"

  # Require assignment operator shorthand where possible or prohibit it entirely
  # http://eslint.org/docs/rules/operator-assignment
  operator-assignment:
    - 0
    - "never"

  # Enforce operators to be placed before or after line breaks
  # http://eslint.org/docs/rules/operator-linebreak
  operator-linebreak: 2

  # Enforce padding within blocks
  # http://eslint.org/docs/rules/padded-blocks
  padded-blocks: 0

  # Require quotes around object literal property names
  # http://eslint.org/docs/rules/quote-props
  quote-props:
    - 2
    - "as-needed"

  # Specify whether backticks, double or single quotes should be used
  # http://eslint.org/docs/rules/quotes
  quotes:
    - 2
    - single
    - avoidEscape: true

  # Require JSDoc comment
  # http://eslint.org/docs/rules/require-jsdoc
  require-jsdoc: 0

  # Enforce spacing before and after semicolons
  # http://eslint.org/docs/rules/semi-spacing
  semi-spacing:
    - 2
    - before: false
      after: true

  # Require or disallow use of semicolons instead of ASI
  # http://eslint.org/docs/rules/semi
  semi:
    - 2
    - 'always'

  # Sort variables within the same declaration block
  # http://eslint.org/docs/rules/sort-vars
  sort-vars: 0

  # Require a space after certain keywords
  # http://eslint.org/docs/rules/keyword-spacing
  keyword-spacing: 2

  # Require or disallow space before blocks
  # http://eslint.org/docs/rules/space-before-blocks
  space-before-blocks:
   - 2
   - "always"

  # Require or disallow space before function opening parenthesis
  # http://eslint.org/docs/rules/space-before-function-paren
  space-before-function-paren:
    - 1
    - {"anonymous": "always", "named": "never"}

  # Require a space before certain keywords
  # http://eslint.org/docs/rules/space-before-keywords
  space-before-keywords: 0

  # Require or disallow spaces inside parentheses
  # http://eslint.org/docs/rules/space-in-parens
  space-in-parens:
    - 2
    - "never"

  # Require spaces around operators
  # http://eslint.org/docs/rules/space-infix-ops
  space-infix-ops: 2

  # Require or disallow spaces before/after unary operators
  # http://eslint.org/docs/rules/space-unary-ops
  space-unary-ops:
    - 2
    - words: true
      nonwords: false

  # Require or disallow a space immediately following the // or /* in a comment
  # http://eslint.org/docs/rules/spaced-comment
  spaced-comment: 0

  # Require regex literals to be wrapped in parentheses
  # http://eslint.org/docs/rules/wrap-regex
  wrap-regex: 0


  #############################################################################
  # Angular - Possible Errors
  #############################################################################

  # Disallow to reference modules with variables and require to use the getter syntax instead angular.module('myModule') (y022)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/module-getter.md
  angular/module-getter: 2

  # Disallow to assign modules to variables (linked to module-getter (y021)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/module-setter.md
  angular/module-setter: 2

  # Disallow use of internal angular properties prefixed with $$
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-private-call.md
  angular/no-private-call: 2


  #############################################################################
  # Angular - Best Practices
  #############################################################################

  # Limit the number of angular components per file (y001)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/component-limit.md
  angular/component-limit:
    - 0
    - 1

  # Disallow assignments to $scope in controllers (y031)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/controller-as.md
  angular/controller-as: 2

  # Require the use of controllerAs in routes or states (y031)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/controller-as-route.md
  angular/controller-as-route: 2

  # Require and specify a capture variable for this in controllers (y032)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/controller-as-vm.md
  angular/controller-as-vm: 0

  # Use $q(function(resolve, reject){}) instead of $q.deferred
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/deferred.md
  angular/deferred: 0

  # Disallow unused DI parameters
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/di-unused.md
  angular/di-unused: 0

  # Disallow any other directive restrict than 'A' or 'E' (y074)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/directive-restrict.md
  angular/directive-restrict: 0

  # Disallow empty controllers
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/empty-controller.md
  angular/empty-controller: 0

  # Disallow use of controllers (according to the component first pattern)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-controller.md
  angular/no-controller: 0

  # Disallow the use of inline templates
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-inline-template.md
  angular/no-inline-template: 0

  # Keep run functions clean and simple (y171)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-run-logic.md
  angular/no-run-logic: 0

  # Disallow DI of specified services for other angular components ($http for controllers, filters and directives)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-services.md
  angular/no-services: 0

  # Require $on and $watch deregistration callbacks to be saved in a variable
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-run-logic.md
  angular/on-watch: 2


  #############################################################################
  # Angular - Deprecated Angular Features
  #############################################################################

  # Use $cookies instead of $cookieStore
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-cookiestore.md
  angular/no-cookiestore: 1

  # Disallow the deprecated directive replace property
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-directive-replace.md
  angular/no-directive-replace: 2

  # Disallow the $http methods success() and error()
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-http-callback.md
  angular/no-http-callback: 0


  #############################################################################
  # Angular - Naming
  #############################################################################

  # Require and specify a prefix for all controller names (y123, y124)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/controller-name.md
  angular/controller-name:
    - 2
    - "/[A-Z].*Controller$/"

  # Require and specify a prefix for all directive names (y073, y126)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/directive-name.md
  angular/directive-name: 0

  # Require and specify a consistent component name pattern (y120, y121)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/file-name.md
  angular/file-name: 0

  # Require and specify a prefix for all filter names
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/filter-name.md
  angular/filter-name: 0

  # Require and specify a prefix for all module names (y127)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/module-name.md
  angular/module-name: 0

  # Require and specify a prefix for all service names (y125)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/service-name.md
  angular/service-name: 2


  #############################################################################
  # Angular - Conventions
  #############################################################################

  # Require a consistent DI syntax
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/di.md
  angular/di:
    - 2
    - "function"

  # Require DI parameters to be sorted alphabetically
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/di-order.md
  angular/di-order:
    - 0
    - true

  # Unittest inject functions should only consist of assignments from injected values to describe block variables
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/dumb-inject.md
  angular/dumb-inject: 0

  # Require and specify a consistent function style for components ('named' or 'anonymous') (y024)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/function-type.md
  angular/function-type: 0

  # Require a consistent order of module dependencies
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/module-dependency-order.md
  angular/module-dependency-order: 0

  # Use factory() instead of service() (y040)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-service-method.md
  angular/no-service-method: 2

  # Require all DI parameters to be located in their own line
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/one-dependency-per-line.md
  angular/one-dependency-per-line: 0

  # Disallow different rest service and specify one of '$http', '$resource', 'Restangular'
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/rest-service.md
  angular/rest-service: 0

  # Require and specify consistent use $scope.digest() or $scope.apply()
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/watchers-execution.md
  angular/watchers-execution: 0


  #############################################################################
  # Angular - Angular Wrappers
  #############################################################################

  # Use angular.element instead of $ or jQuery
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/angularelement.md
  angular/angularelement: 1

  # Use angular.isDefined and angular.isUndefined instead of other undefined checks
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/definedundefined.md
  angular/definedundefined: 2

  # Use $document instead of document (y180)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/document-service.md
  angular/document-service: 2

  # Use angular.forEach instead of native Array.prototype.forEach
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/foreach.md
  angular/foreach: 0

  # Use $interval instead of setInterval (y181)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/interval-service.md
  angular/interval-service: 2

  # Use angular.fromJson and 'angular.toJson' instead of JSON.parse and JSON.stringify
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/json-functions.md
  angular/json-functions: 2

  # Use the $log service instead of the console methods
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/log.md
  angular/log: 2

  # Require to use angular.mock methods directly
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-angular-mock.md
  angular/no-angular-mock: 0

  # Disallow to wrap angular.element objects with jQuery or $
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/no-jquery-angularelement.md
  angular/no-jquery-angularelement: 0

  # Use $timeout instead of setTimeout (y181)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/timeout-service.md
  angular/timeout-service: 2

  # Use angular.isArray instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-array.md
  angular/typecheck-array: 2

  # Use angular.isDate instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-date.md
  angular/typecheck-date: 2

  # Use angular.isFunction instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-function.md
  angular/typecheck-function: 2

  # Use angular.isNumber instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-number.md
  angular/typecheck-number: 2

  # Use angular.isObject instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-object.md
  angular/typecheck-object: 2

  # Use angular.isString instead of typeof comparisons
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/typecheck-string.md
  angular/typecheck-string: 2

  # Use $window instead of window (y180)
  # https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/window-service.md
  angular/window-service: 2


# Angular rules should be specific to Angular 1.x
settings:
  angular: 1