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