env:
  es6: true
  mongo: true

rules:
  # Rules are documented at http://eslint.org/docs/rules/
  #
  # Possible Errors
  comma-dangle: ["error", "only-multiline"]
  no-cond-assign: 2
  no-console: 2
  no-constant-condition: 2
  no-control-regex: 2
  no-debugger: 2
  no-dupe-args: 2
  no-dupe-keys: 2
  no-duplicate-case: 2
  no-empty: 2
  no-empty-character-class: 2
  no-extra-parens: 0
  no-ex-assign: 2
  no-extra-boolean-cast: 2
  no-extra-semi: 2
  no-func-assign: 2
  no-inner-declarations: 0
  no-invalid-regexp: 2
  no-irregular-whitespace: 2
  no-negated-in-lhs: 2
  no-obj-calls: 2
  no-prototype-builtins: 0
  no-regex-spaces: 2
  no-sparse-arrays: 2
  no-unexpected-multiline: 2
  no-unreachable: 2
  no-unsafe-finally: 2
  use-isnan: 2
  valid-jsdoc: 0
  valid-typeof: 2
  #
  # Best Practices
  accessor-pairs: 0
  array-callback-return: 2
  block-scoped-var: 0
  consistent-return: 0
  curly: ["error", "all"]
  default-case: 2
  dot-location: 0
  dot-notation: 0
  eqeqeq: 2
  guard-for-in: 2
  no-alert: 2
  no-caller: 2
  no-case-declarations: 0
  no-div-regex: 2
  no-else-return: 2
  no-empty-function: 2
  no-empty-pattern: 2
  no-eq-null: 0
  no-eval: 2
  no-extend-native: 0
  no-extra-bind: 2
  no-extra-label: 2
  no-fallthrough: 2
  no-floating-decimal: 0
  no-implicit-coercion: 0
  no-implicit-globals: 0
  no-implied-eval: 2
  no-invalid-this: 2
  no-iterator: 0
  no-labels: 2
  no-lone-blocks: 2
  no-loop-func: 2
  no-magic-numbers: 0
  no-multi-spaces: 2
  no-multi-str: 0
  no-native-reassign: 2
  no-new: 0
  no-new-func: 0
  no-new-wrappers: 2
  no-octal: 2
  no-octal-escape: 2
  no-param-reassign: 0
  no-proto: 2
  no-redeclare: 2
  no-return-assign: 2
  no-script-url: 2
  no-self-assign: 2
  no-self-compare: 2
  no-sequences: 2
  no-throw-literal: 2
  no-unmodified-loop-condition: 2
  no-unused-expressions: 2
  no-unused-labels: 2
  no-useless-call: 2
  no-useless-concat: 2
  no-useless-escape: 2
  no-void: 2
  no-warning-comments: 0
  no-with: 2
  radix: 0
  vars-on-top: 0
  wrap-iife: 2
  yoda: 2
  #
  # Variables
  init-declarations: 0
  no-catch-shadow: 2
  no-delete-var: 0
  no-label-var: 2
  no-restricted-globals: 0
  no-shadow: 0
  no-shadow-restricted-names: 2
  no-undef: 0
  no-undef-init: 0
  no-undefined: 0
  no-unused-vars: ["error", { "varsIgnorePattern": "testName" }]
  no-use-before-define: 2
  #
  # Style
  array-bracket-spacing: ["error", "never"]
  block-spacing: ["error", "always"]
  brace-style: ["error", "1tbs"]
  camelcase: 0
  comma-spacing: ["error", { "before": false, "after": true }]
  comma-style: ["error", "last"]
  computed-property-spacing: ["error", "never"]
  consistent-this: 0
  eol-last: 2
  func-names: 0
  func-style: 0
  id-blacklist: 0
  id-length: 0
  id-match: 0
  indent: ["error", 2]
  jsx-quotes: 0
  key-spacing: 2
  keyword-spacing: ["error", { "before": true, "after": true }]
  linebreak-style: 2
  lines-around-comment: 0
  max-depth: 0
  max-len: 0
  max-lines: 0
  max-nested-callbacks: 0
  max-params: 0
  max-statements: 0
  max-statements-per-line: 0
  new-cap: 0
  new-parens: 2
  newline-after-var: 0
  newline-before-return: 0
  newline-per-chained-call: 0
  no-array-constructor: 2
  no-bitwise: 0
  no-continue: 0
  no-inline-comments: 0
  no-lonely-if: 2
  no-mixed-operators: 0
  no-mixed-spaces-and-tabs: 2
  no-multiple-empty-lines: 2
  no-negated-condition: 0
  no-nested-ternary: 0
  no-new-object: 0
  no-plusplus: 0
  no-restricted-syntax: 0
  no-spaced-func: 2
  no-ternary: 0
  no-trailing-spaces: 2
  no-underscore-dangle: 0
  no-unneeded-ternary: 2
  no-whitespace-before-property: 2
  object-curly-newline: 0
  object-curly-spacing: 2
  object-property-newline: 0
  one-var: 0
  one-var-declaration-per-line: 0
  operator-assignment: 0
  operator-linebreak: 0
  padded-blocks: 0
  quote-props: 0
  quotes: 0
  require-jsdoc: 0
  semi: 2
  semi-spacing: 2
  sort-vars: 0
  space-before-blocks: 2
  space-before-function-paren: 0
  space-in-parens: 2
  space-infix-ops: 0
  space-unary-ops: 2
  spaced-comment: 2
  unicode-bom: 0
  wrap-regex: 0
