---
parser: esprima-fb

env:
  browser: true
  node: true

globals:
  __DEV__: true

rules:
  # ERRORS
  space-before-blocks: 2
  indent: [2, 2, indentSwitchCase: true]
  brace-style: 2
  space-after-keywords: 2
  strict: 2
  # We actually have a transform to support this and we fix this for bundled
  # releases but not for the npm package, so enforce it strictly
  no-comma-dangle: 2
  # Make this a warning for now. We do this in a few places so we might need to
  # disable
  no-unused-expressions: 2
  block-scoped-var: 2
  eol-last: 2
  dot-notation: 2
  consistent-return: 2
  no-unused-vars: [2, args: none]
  quotes: [2, 'single']

  # WARNINGS
  # This is the only one that's hard to track since we don't lint just changes.
  max-len: [1, 80]

  # WISHLIST. One day...
  # We'll need a custom version of this that does a subset of the whole rule.
  # Otherwise this is just too noisy.
  # valid-jsdoc: 1

  # DISABLED. These aren't compatible with our style
  # We use this for private/internal variables
  no-underscore-dangle: 0
  # We pass constructors around / access them from members
  new-cap: 0
  # We do this a lot.
  no-use-before-define: 0
  # We do this in a few places to align values
  key-spacing: 0

  # DISABLED. These currently cause errors when running.
  no-multi-spaces: 0
