parser: "babel-eslint"
parserOptions:
  ecmaVersion: 7
  sourceType: "module"
env:
  es6: true
  browser: true
  builtin: true
  jasmine: true
  jquery: true
  mocha: true
  node: true
rules:
  # Possible Errors
  array-callback-return: "error"
  comma-dangle:
    - "error"
    - "never"
  handle-callback-err: "error"
  no-bitwise: "error"
  no-cond-assign: "error"
  no-console: "error"
  no-constant-condition: "error"
  no-control-regex: "error"
  no-debugger: "error"
  no-dupe-args: "error"
  no-dupe-keys: "error"
  no-duplicate-case: "error"
  no-duplicate-imports: "error"
  no-empty: "error"
  no-empty-character-class: "error"
  no-empty-function: "error"
  no-empty-pattern: "error"
  no-ex-assign: "error"
  no-extra-boolean-cast: "error"
  no-extra-label: "error"
  no-extra-parens: "off"
  no-extra-semi: "error"
  no-func-assign: "error"
  no-inner-declarations: "error"
  no-invalid-regexp: "error"
  no-irregular-whitespace: "error"
  no-negated-in-lhs: "error"
  no-obj-calls: "error"
  no-regex-spaces: "error"
  no-restricted-globals:
    - "error"
    - "event"
  no-self-assign: "error"
  no-sparse-arrays: "error"
  no-unexpected-multiline: "error"
  no-unmodified-loop-condition: "error"
  no-unreachable: "error"
  no-unused-labels: "error"
  no-useless-escape: "error"
  no-useless-rename: "error"
  use-isnan: "error"
  valid-jsdoc: "off"
  valid-typeof: "error"
  # Best Practices
  accessor-pairs: "error"
  block-scoped-var: "error"
  consistent-return: "off"
  curly: "error"
  default-case: "error"
  dot-location: "off"
  dot-notation: "off"
  eqeqeq: "error"
  guard-for-in: "error"
  no-alert: "error"
  no-caller: "error"
  no-case-declarations: "error"
  no-div-regex: "error"
  no-else-return: "error"
  no-eq-null: "error"
  no-eval: "error"
  no-extend-native: "error"
  no-extra-bind: "error"
  no-fallthrough: "error"
  no-floating-decimal: "error"
  no-implicit-coercion: "error"
  no-implied-eval: "error"
  no-invalid-this: "off"
  no-iterator: "error"
  no-labels: "error"
  no-lone-blocks: "error"
  no-loop-func: "error"
  no-magic-numbers: "off"
  no-multi-spaces: "off"
  no-multi-str: "error"
  no-native-reassign: "error"
  no-new: "error"
  no-new-func: "off"
  no-new-wrappers: "error"
  no-octal: "error"
  no-octal-escape: "error"
  no-param-reassign: "off"
  no-process-env: "error"
  no-proto: "error"
  no-redeclare: "error"
  no-return-assign: "error"
  no-script-url: "error"
  no-self-compare: "error"
  no-sequences: "error"
  no-throw-literal: "error"
  no-unused-expressions: "error"
  no-useless-call: "error"
  no-useless-concat: "error"
  no-useless-constructor: "error"
  no-void: "error"
  no-warning-comments: "off"
  no-with: "error"
  radix: "error"
  unicode-bom:
    - "error"
    - "never"
  vars-on-top: "off"
  wrap-iife: "error"
  yoda: "error"
  # Variables
  init-declarations: "off"
  no-catch-shadow: "error"
  no-delete-var: "error"
  no-label-var: "error"
  no-shadow: "off"
  no-shadow-restricted-names: "error"
  no-undef: "error"
  no-undefined: "off"
  no-undef-init: "error"
  no-unused-vars: "error"
  no-use-before-define: "off"
  # Stylistic
  array-bracket-spacing: "error"
  block-spacing: "error"
  brace-style: "error"
  camelcase: "error"
  comma-spacing: "error"
  comma-style: "error"
  computed-property-spacing: "error"
  consistent-this: "error"
  eol-last: "error"
  func-names: "off"
  func-style: "off"
  indent:
    - "error"
    - 2
    -
      SwitchCase: 1
  key-spacing: "off"
  keyword-spacing: "error"
  linebreak-style: "error"
  lines-around-comment: "off"
  max-statements-per-line:
    - "error"
    -
      max: 1
  new-cap: "off"
  newline-after-var: "off"
  new-parens: "error"
  no-array-constructor: "error"
  no-continue: "off"
  no-inline-comments: "off"
  no-lonely-if: "error"
  no-mixed-spaces-and-tabs: "error"
  no-multiple-empty-lines: "error"
  no-nested-ternary: "off"
  no-new-object: "error"
  no-spaced-func: "error"
  no-ternary: "off"
  no-trailing-spaces: "error"
  no-underscore-dangle: "off"
  no-unneeded-ternary: "error"
  no-unsafe-finally: "error"
  no-useless-computed-key: "error"
  no-whitespace-before-property: "error"
  object-curly-spacing:
    - "warn"
    - "always"
  object-property-newline: "error"
  one-var: "off"
  operator-assignment: "error"
  operator-linebreak: "off"
  padded-blocks: "off"
  quote-props:
    - "error"
    - "as-needed"
  quotes:
    - "error"
    - "single"
  semi:
    - "error"
    - "never"
  semi-spacing: "error"
  sort-vars: "error"
  space-before-blocks: "error"
  space-before-function-paren: "off"
  spaced-comment: "error"
  space-infix-ops: "error"
  space-in-parens: "error"
  space-unary-ops: "error"
  # es6
  arrow-parens: "error"
  arrow-spacing: "error"
  constructor-super: "error"
  generator-star-spacing: "error"
  no-class-assign: "error"
  no-const-assign: "error"
  no-dupe-class-members: "error"
  no-new-symbol: "error"
  no-this-before-super: "error"
  no-var: "error"
  object-shorthand: "error"
  prefer-arrow-callback: "error"
  prefer-const: "off"
  prefer-reflect: "off"
  prefer-rest-params: "error"
  prefer-spread: "error"
  prefer-template: "error"
  require-yield: "error"
