extends: eslint:recommended
env:
  node: true
  browser: true
  es6: true
  mocha: true

rules:
  block-scoped-var: 2
  callback-return: 2
  complexity: [2, 17]
  dot-location: [2, property]
  dot-notation: 2
  eol-last: 2
  eqeqeq: 2
  indent: [1, 4, SwitchCase: 1]
  function-paren-newline: 2
  key-spacing: 2
  keyword-spacing: 2
  linebreak-style: [2, unix]
  new-parens: 2
  newline-per-chained-call: 2
  no-alert: 2
  no-console: [1, allow: [warn, error]]
  no-control-regex: 0
  no-eq-null: 2
  no-delete-var: 2
  no-dupe-keys: 2
  no-else-return: 2
  no-empty-pattern: 2
  no-fallthrough: 2
  no-floating-decimal: 2
  no-implicit-coercion: 2
  no-invalid-this: 2
  no-irregular-whitespace: 2
  no-lonely-if: 2
  no-multi-spaces: 2
  no-multiple-empty-lines: 2
  no-redeclare: 2
  no-regex-spaces: 2
  no-return-assign: 2
  no-shadow: 1
  no-self-assign: 2
  no-trailing-spaces: 2
  no-undef: 2
  no-unneeded-ternary: 2
  no-unused-labels: 2
  no-use-before-define: [2, nofunc]
  no-useless-escape: 2
  no-useless-return: 2
  no-whitespace-before-property: 2
  nonblock-statement-body-position: 2
  object-curly-spacing: 2
  object-property-newline: 2
  quotes: [2, single, avoid-escape]
  semi: [2, always]
  strict: [2, global]
  wrap-iife: 2

parserOptions:
  ecmaVersion: 6
  sourceType: script
  ecmaFeatures:
    jsx: true
