{
    "env": {
        "browser": true,
        "es6": true,
        "mocha": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended"
    ],
    "parserOptions": {
        "ecmaFeatures": {
            "experimentalObjectRestSpread": true,
            "jsx": true
        },
        "ecmaVersion": 2017,
        "sourceType": "module"
    },
    "plugins": [
        "react"
    ],
    "rules": {
        "indent": [
            "error",
            4,
            {
                "SwitchCase": 1,
                "MemberExpression": 1,
                "FunctionExpression": {"parameters": "first"},
                "CallExpression": {"arguments": "first"},
                "ArrayExpression": 1,
                "ObjectExpression": 1
            } 
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "no-console": "off",
        "default-case": "error",
        "eqeqeq": "error",
        "curly": "error",
        "no-invalid-this": "error",
        "no-multi-spaces": "error",
        "no-self-compare": "error",
        "no-sequences": "error",
        "no-unused-expressions": "error",
        "array-bracket-spacing": [
            "error",
            "never"
        ],
        "array-bracket-newline": [
            "error",
            {
                "multiline": true,
                "minItems": 3
            }
        ],
        "multiline-ternary": [
            "error",
            "always-multiline"
        ],
        "brace-style": [
            "error",
            "1tbs"
        ],
        "comma-dangle": [
            "error",
            "never"
        ],
        "comma-spacing": [
            "error",
            {
                "before": false,
                "after": true
            }
        ],
        "func-call-spacing": [
            "error",
            "never"
        ],
        "implicit-arrow-linebreak": [
            "error",
            "beside"
        ],
        "keyword-spacing": [
            "error",
            {
                "before": true,
                "after": true
            }
        ],
        "max-len": [
            "warn",
            150
        ],
        "max-lines": [
            "warn",
            300
        ],
        "arrow-spacing": [
            "error",
            {
                "before": true,
                "after": true
            }
        ],
        "no-var": [
            "error"
        ],
        "object-shorthand": [
            "error"
        ],
        "prefer-spread": [
            "warn"
        ],
        "prefer-template": [
            "warn"
        ]
    }
}