amatiasq
5/11/2015 - 4:55 PM

ESLint conf

ESLint conf

env:
  browser: true

globals:
  define: true

rules:
  # possible errors
  comma-dangle: [1, "always-multiline"]
  no-cond-assign: [2, "except-parens"]
  no-console: 0
  no-constant-condition: 2
  no-control-regex: 2
  no-debugger: 1
  # no-debugger: 2 - for commit
  no-dupe-args: 2
  no-dupe-keys: 2
  no-duplicate-case: 2
  no-empty-class: 2
  no-empty: 2
  no-ex-assign: 2
  no-extra-boolean-cast: 2
  no-extra-parens: 1
  no-extra-semi: 2
  no-func-assign: 2
  no-inner-declarations: 1
  no-invalid-regexp: 2
  no-irregular-whitespace: 2
  no-negated-in-lhs: 2
  no-obj-calls: 2
  no-regex-spaces: 2
  no-reserved-keys: 0
  no-sparse-arrays: 2
  no-unreachable: 2
  use-isnan: 2
  valid-jsdoc: 1
  valid-typeof: 2

  # best practices
  block-scoped-var: 1
  complexity: [2, 5]
  consistent-return: 1
  curly: [2, "multi-line"]
  default-case: 2
  dot-notation: 2
  # dot-location: [2, "property"]
  eqeqeq: [2, "allow-null"]
  guard-for-in: 2
  max-params: [2, 8]
  no-alert: 2
  no-caller: 2
  no-div-regex: 2
  no-else-return: 2
  no-empty-label: 0 # disabled in favor of no-labels
  no-eq-null: 0 # disabled in favor of eqeqeq "allow-null"
  no-eval: 2
  no-extend-native: [2, { "exceptions": [ "Promise" ]}]
  no-extra-bind: 2
  no-fallthrough: 2
  no-floating-decimal: 2
  no-implied-eval: 2
  no-iterator: 2
  no-labels: 2
  no-lone-blocks: 2
  no-loop-func: 2
  no-multi-spaces: 2
  no-multi-str: 2
  no-native-reassign: 2
  no-new-func: 2
  no-new-wrappers: 2
  no-new: 2
  no-octal-escape: 2
  no-octal: 2
  no-param-reassign: 1
  no-proto: 2
  no-redeclare: 2
  no-return-assign: 2
  no-script-url: 2
  no-self-compare: 2
  no-sequences: 2
  no-throw-literal: 2
  no-unused-expressions: 1
  # no-unused-expressions: 2 - for commit
  no-void: 2
  no-warning-comments: [1, { "terms": [ "TODO", "HACK", "FIXME" ]}]
  no-with: 2
  radix: 2
  vars-on-top: 0
  wrap-iife: [2, "outside"]
  yoda: 0

  # strict
  strict: [2, "function"]

  # variables
  no-catch-shadow: 2
  no-delete-var: 2
  no-label-var: 0 # disabled in favor of no-labels
  no-shadow-restricted-names: 2
  no-shadow: 0
  no-undef-init: 2
  no-undef: 2
  no-undefined: 2
  no-unused-vars: [2, { "vars": "all", "args": "after-used" }]
  no-use-before-define: [2, "nofunc"]

  # style
  brace-style: [2, "1tbs", { "allowSingleLine": false }]
  camelcase: [2, { "properties": "always" }]
  comma-spacing: [2, { "before": false, "after": true }]
  comma-style: [2, "last"]
  consistent-this: [2, "self"]
  eol-last: 2
  func-names: 0
  func-style: [2, "declaration"]
  indent: [2, 2]
  key-spacing: [2, { "beforeColon": false, "afterColon": true }]
  linebreak-style: [0, "unix"]
  max-nested-callbacks: [2, 3]
  new-cap: 2
  new-parens: 2
  newline-after-var: 0
  no-array-constructor: 2
  no-continue: 1
  no-inline-comments: 2
  no-lonely-if: 2
  no-mixed-spaces-and-tabs: [2]
  no-multiple-empty-lines: [2, { "max": 2 }]
  no-nested-ternary: 2
  no-new-object: 2
  no-space-before-semi: 2
  no-spaced-func: 2
  no-ternary: 0
  no-trailing-spaces: 2
  no-underscore-dangle: 0
  # no-unneeded-ternary: 2
  one-var: [2, "never"]
  operator-assignment: 0
  operator-linebreak: [2, "after"]
  padded-blocks: [2, "never"]
  quote-props: [2, "as-needed"]
  quotes: [2, "single", "avoid-escape"]
  semi-spacing: [2, { "before": false, "after": true }]
  semi: [2, "always"]
  sort-vars: 0
  space-after-keywords: [2, "always"]
  space-before-blocks: [2, "always"]
  space-before-function-paren: [2, "never"]
  space-in-brackets: [2, "always", { "objectsInArrays": false, "arraysInArrays": false, "arraysInObjects": false, "objectsInObjects": false, "propertyName": false }]
  space-in-parens: [2, "never"]
  space-infix-ops: [2, { "int32Hint": false }]
  space-return-throw-case: 2
  space-unary-ops: [2, { "words": true, "nonwords": true }]
  spaced-line-comment: [2, "always" ]
  wrap-regex: 0