extends: eslint:recommended

rules:
  # Turning on extra rules
  quotes: [2, "single", "avoid-escape"]
  no-alert: [2]
  no-use-before-define: [2, "nofunc"]
  space-before-blocks: [2, "always"]
  space-after-keywords: [2]
  dot-location: [2, "property"]
  wrap-iife: [2, "inside"]
  brace-style: [2, "1tbs", {"allowSingleLine": true}]
  comma-style: [2]
  linebreak-style: [2]
  no-lonely-if: [2]
  spaced-comment: [2]
  no-this-before-super: [2]
  constructor-super: [2]
  indent: [2, 2, {"SwitchCase": 1}]

  # Turning off default rules. Should some of these be warnings?
  no-console: [0]
  no-unused-vars: [0]
  no-var: [0]
  comma-dangle: [0]
  new-cap: [0]
  no-underscore-dangle: [0]
  camelcase: [0]
  no-extra-strict: [0]
  no-inner-declarations: [0]
  no-loop-func: [0]
  no-func-assign: [0]

ecmaFeatures:
  arrowFunctions: true
  binaryLiterals: true
  blockBindings: true
  classes: true
  defaultParams: true
  destructuring: true
  forOf: true
  generators: true
  modules: true
  objectLiteralComputedProperties: true
  objectLiteralDuplicateProperties: true
  objectLiteralShorthandMethods: true
  objectLiteralShorthandProperties: true
  octalLiterals: true
  regexUFlag: true
  regexYFlag: true
  spread: true
  superInFunctions: true
  templateStrings: true
  unicodeCodePointEscapes: true
  jsx: true

env:
  browser: true

settings:
  resolve.root:
    - node_modules
    - src
