{
    "extends": "eslint:recommended",
        "ecmaFeatures": {
            "jsx": true,
            "blockBindings": true,
            "modules": true,
            "classes": true,
            "arrowFunctions": true,
            "defaultParams": true, 
        },
        "plugins": [
            "react"
        ],
        "env": {
            "browser": true,
            "node": true,
            "jquery": true,
            "es6": true
        },
        "globals": {
            "React": false,
            "ReactDOM": false,
            "ReactBootstrap": false
        },
        "rules": {
            "comma-dangle": [2, "never"],
            "no-cond-assign": [2, "except-parens"],
            "no-console": 2,
            "no-constant-condition": 2,
            "no-debugger": 2,
            "no-dupe-args": 2,
            "no-dupe-keys": 2,
            "no-duplicate-case": 2,
            "no-empty": 2,
            "no-ex-assign": 2,
            "no-extra-semi": 2,
            "no-func-assign": 2,
            "no-inner-declarations": 0,
            "no-invalid-regexp": 2,
            "no-irregular-whitespace": 2,
            "no-unexpected-multiline": 2,
            "no-unreachable": 2,
            "valid-typeof": 2,

            "block-scoped-var": 2,
            "complexity": [0, 8],
            "consistent-return": 2,
            "curly": [2, "all"],
            "dot-location": [2, "object"],
            "dot-notation": 2,
            "eqeqeq": [2, "smart"],
            "global-require": 2,
            "guard-for-in": 2,
            "no-alert": 2,
            "no-array-constructor": 2,
            "no-caller": 2,
            "no-div-regex": 2,
            "no-else-return": 2,
            "no-eval": 2,
            "no-extend-native": 2,
            "no-extra-bind": 2,
            "no-floating-decimal": 2,
            "no-implied-eval": 2,
            "no-iterator": 2,
            "no-labels": 2,
            "no-lone-blocks": 2,
            "no-loop-func": 2,
            "no-multi-spaces": [2, { "exceptions": { "Property": false } }],
            "no-multi-str": 0,
            "no-native-reassign": 2,
            "no-new": 2,
            "no-new-func": 2,
            "no-new-object": 2,
            "no-new-wrappers": 2,
            "no-octal-escape": 2,
            "no-param-reassign": 2,
            "no-process-env": 2,
            "no-process-exit": 2,
            "no-proto": 2,
            "no-redeclare": 2,
            "no-return-assign": [2, "always"],
            "no-script-url": 2,
            "no-self-compare": 2,
            "no-sequences": 2,
            "no-throw-literal": 2,
            "no-undef-init": 2,
            "no-unused-expressions": 2,
            "no-useless-concat": 1,
            "no-void": 2,
            "no-warning-comments": 1,
            "no-with": 2,
            "radix": 2,
            "vars-on-top": 0,
            "wrap-iife": [2, "outside"],
            "yoda": [2, "never", {"exceptRange": false, "onlyEquality": false}],

            "no-undefined": 2,
            "no-shadow": [2, {"hoist": "functions"}],
            "no-shadow-restricted-names": 2,
            "no-unused-vars": [2, {"vars": "all", "args": "after-used"}],
            "no-use-before-define": [2, "nofunc"],

            // Style
            "array-bracket-spacing": [2, "never"],
            "brace-style": [2, "1tbs", { "allowSingleLine": false }],
            "camelcase": [2, {"properties": "never"}],
            "comma-spacing": [2, {"before": false, "after": true}],
            "comma-style": [2, "last"],
            "computed-property-spacing": [2, "never"],
            "consistent-this": [2, "self"],
            "func-names": 2,
            "func-style": [2, "declaration"],
            "indent": [2, 4, {"SwitchCase": 0}],
            "jsx-quotes": [2, "prefer-single"],
            "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
            "linebreak-style": 2,
            "lines-around-comment": [2, { "beforeBlockComment": true, "beforeLineComment": true, "allowBlockStart": true, "allowBlockEnd": true }],
            "new-cap": 2,
            "new-parens": 2,
            "no-lonely-if": 2,
            "no-mixed-spaces-and-tabs": 2,
            "no-multiple-empty-lines": [2, {"max": 1}],
            "no-negated-condition": 2,
            "no-nested-ternary": 2,
            "no-spaced-func": 2,
            "no-ternary": 0,
            "no-trailing-spaces": [2, { "skipBlankLines": false }],
            "no-underscore-dangle": 2,
            "no-unneeded-ternary": [2, {"defaultAssignment": false}],
            "object-curly-spacing": [2, "never"],
            "one-var": [2, "never"],
            "operator-linebreak": [2, "after"],
            "padded-blocks": [2, "never"],
            "quote-props": [2, "as-needed"],
            "quotes": [2, "single", "avoid-escape"],
            "semi": [2, "always"],
            "semi-spacing": [2, {"before": false, "after": true}],
            "space-after-keywords": [2, "always"],
            "space-before-blocks": [2, "always"],
            "space-before-function-paren": [2, "never"],
            "space-before-keywords": [2, "always"],
            "space-in-parens": [2, "never"],
            "space-infix-ops": 2,
            "space-return-throw-case": 2,
            "space-unary-ops": [2, { "words": true, "nonwords": false }],
            "wrap-regex": 2,

            // ES6 stuff
            "arrow-parens": [2, "always"],
            "arrow-spacing": [2, { "before": true, "after": true }],
            "constructor-super": 2,
            "generator-star-spacing": [2, {"before": false, "after": true}],
            "no-class-assign": 2,
            "no-const-assign": 2,
            "no-dupe-class-members": 2,
            "no-this-before-super": 2,
            "no-var": 0,
            "object-shorthand": [1, "always"],
            "prefer-arrow-callback": 1,
            "prefer-const": 1,
            "prefer-spread": 2,
            "prefer-reflect": 1,
            "prefer-template": 0,
            "require-yield": 2,

            // React Specific
            "react/display-name": [2, { "acceptTranspilerName": true }],
            "react/jsx-boolean-value": [2, "always"],
            "react/jsx-closing-bracket-location": [2, { "location": "tag-aligned" }],
            "react/jsx-curly-spacing": [2, "never"],
            "react/jsx-indent-props": [2, 4],
            "react/jsx-max-props-per-line": [2, { "maximum": 1 }],
            "react/jsx-no-duplicate-props": [2, { "ignoreCase": false }],
            "react/jsx-no-literals": 1,
            "react/jsx-no-undef": 2,
            "react/jsx-uses-react": 2,
            "react/jsx-uses-vars": 2,
            "react/no-danger": 0,
            "react/no-did-mount-set-state": 2,
            "react/no-did-update-set-state": 2,
            "react/no-multi-comp": 2,
            "react/no-set-state": 0,
            "react/no-unknown-property": 2,
            "react/prop-types": 2,
            "react/self-closing-comp": 2,
            "react/sort-comp": 0,
            "react/wrap-multilines": 2,
            "react/no-direct-mutation-state": 2
        }
}
