{
  "parser": "babel-eslint",
  "parserOptions": {
    "sourceType": "module"
  },
  "env": {
    "jest": true,
    "es6": true,
    "browser": true,
    "node": true
  },
  "rules": {

    /* ENFORCE STRICT MODE */
    "strict": [
      2,
      "never"
    ],

    /* ES6 SPECIFIC */
    "constructor-super": 2,
    "no-var": 2,
    "prefer-const": 2,
    "arrow-parens": [2, "always"],
    "arrow-spacing": [2, { "before": true, "after": true }],
    "no-confusing-arrow": 2,
    "no-class-assign" : 2,
    "no-const-assign": 2,
    "no-dupe-class-members": 2,
    "no-this-before-super": 2,
    "object-shorthand": [2, "never"],
    "prefer-arrow-callback": 2,
    "prefer-template": 2,

    /* VARIOUS */
    "comma-dangle": 1,
    "no-cond-assign": 1,
    "no-console": 0,
    "no-constant-condition": 1,
    "no-control-regex": 1,
    "no-debugger": 1,
    "no-dupe-args": 1,
    "no-dupe-keys": 1,
    "no-duplicate-case": 1,
    "no-empty-character-class": 1,
    "no-empty": 1,
    "no-ex-assign": 1,
    "no-extra-boolean-cast": 1,
    "no-extra-parens": 0,
    "no-extra-semi": 1,
    "semi": [2, "always"],
    "no-func-assign": 1,
    "no-inner-declarations": 1,
    "no-invalid-regexp": 1,
    "no-irregular-whitespace": 1,
    "no-negated-in-lhs": 1,
    "no-obj-calls": 1,
    "no-regex-spaces": 1,
    "no-sparse-arrays": 1,
    "no-unreachable": 1,
    "use-isnan": 1,
    "valid-typeof": 1,

    /* BEST PRACTICES */
    "block-scoped-var": 1,
    "default-case": 1,
    "consistent-return": 1,
    "dot-notation": 1,
    "complexity": 1,
    "eqeqeq": 1,
    "guard-for-in": 1,
    "no-alert": 1,
    "no-caller": 1,
    "no-div-regex": 1,
    "no-else-return": 1,
    "no-extra-bind": 1,
    "no-fallthrough": 1,
    "no-floating-decimal": 1,
    "no-implicit-coercion": 1,
    "no-invalid-this": 1,
    "no-lone-blocks": 1,
    "no-loop-func": 1,
    "no-new-wrappers": 1,
    "no-redeclare": 1,
    "no-return-assign": 1,
    "no-self-compare": 1,
    "no-sequences": 1,
    "no-unused-expressions": 1,
    "no-useless-call": 1,
    "vars-on-top": 1,
    "yoda": 1,

    /* VARIABLES */
    "init-declarations": 1,
    "no-catch-shadow": 1,
    "no-delete-var": 1,
    "no-shadow": 1,
    "no-shadow-restricted-names": 2,
    "no-undef-init": 1,
    "no-undef": 1,
    "no-undefined": 1,
    "no-unused-vars": 1,
    "no-use-before-define": 2,

    /* STYLE */
    "camelcase": 1,
    "comma-spacing": [1, {"before": false, "after": true}],
    "no-array-constructor": 1,
    "quotes": [1, "single"]
  }
}
