{
  "parser": "babel-eslint",
  "env": {
    "browser": true,
    "node": true,
    "es6": true
  },
  "rules": {
    "array-bracket-spacing": [2, "never"],
    "brace-style": [2, "1tbs", {"allowSingleLine": false}],
    "camelcase": [2, {"properties": "never"}],
    "comma-dangle": [2, "always-multiline"],
    "comma-spacing": [2, {"before": false, "after": true}],
    "curly": 2,
    "eol-last": 2,
    "eqeqeq": [2, "allow-null"],
    "guard-for-in": 2,
    "indent": [2, 4, {"SwitchCase": 1}],
    "keyword-spacing": 2,
    "linebreak-style": [2, "unix"],
    "max-len": [2, 80, 4, {"ignoreUrls": true, "ignorePattern": "\\brequire(?:WithVars)?\\([\"']|eslint-disable"}],
    "max-lines": [2, 1000],
    "no-alert": 2,
    "no-array-constructor": 2,
    "no-console": 2,
    "no-debugger": 2,
    "no-dupe-class-members": 2,
    "no-dupe-keys": 2,
    "no-extra-bind": 2,
    "no-new": 2,
    "no-new-func": 2,
    "no-new-object": 2,
    "no-spaced-func": 2,
    "no-throw-literal": 2,
    "no-trailing-spaces": 2,
    "no-undef": 2,
    "no-unexpected-multiline": 2,
    "no-unreachable": 2,
    "no-unused-vars": [2, {"args": "none", "varsIgnorePattern": "^_*$"}],
    "no-useless-call": 2,
    "no-with": 2,
    "object-curly-spacing": 2,
    "one-var": [2, "never"],
    "semi": [2, "always"],
    "space-before-function-paren": [2, "never"],
    "space-in-parens": 2,
    "space-infix-ops": 2,
    "space-unary-ops": 2,
    "no-case-declarations": 0,
    "valid-jsdoc": 0,
    "require-jsdoc": 0,
    // ---------------------------------------
    // ES6 rules.
    "arrow-spacing": 2,
    "computed-property-spacing": 2,
    "constructor-super": 2,
    "no-const-assign": 2,
    "no-this-before-super": 2,
    "no-var": 2,
    "prefer-const": 2,
    "prefer-spread": 2,
    "prefer-template": 0,
    "arrow-parens": 0,
    "prefer-arrow-callback": 0,
    // ---------------------------------------
    // React rules.
    "react/forbid-prop-types": [2, { "forbid": [ "array", "object" ] }],
    "react/jsx-closing-bracket-location": [2, "line-aligned"],
    "react/jsx-curly-spacing": [2, "never"],
    "react/jsx-indent-props": 2,
    "react/jsx-no-duplicate-props": 2,
    "react/jsx-no-undef": 2,
    "react/jsx-uses-react": 2,
    "react/jsx-uses-vars": 2,
    "react/no-did-mount-set-state": [2],
    "react/no-did-update-set-state": 2,
    "react/no-direct-mutation-state": 2,
    "react/prop-types": 2,
    "react/self-closing-comp": 2,
    "react/sort-comp": 2,
    "react/jsx-sort-props": 0,
    "react/sort-prop-types": 0,
    // -------------------------------------------
    // Flowtype rules.
    "flowtype/boolean-style": [
      2,
      "boolean"
    ],
    "flowtype/define-flow-type": 1,
    "flowtype/delimiter-dangle": [
      2,
      "never"
    ],
    "flowtype/generic-spacing": [
      2,
      "never"
    ],
    "flowtype/no-primitive-constructor-types": 2,
    "flowtype/no-types-missing-file-annotation": 2,
    "flowtype/no-weak-types": [
      2,
      {
        "any": false,
        "Object": false,
        "Function": false
      }
    ],
    "flowtype/object-type-delimiter": [
      2,
      "comma"
    ],
    "flowtype/require-valid-file-annotation": 2,
    "flowtype/semi": [
      2,
      "always"
    ],
    "flowtype/space-after-type-colon": [
      2,
      "always"
    ],
    "flowtype/space-before-generic-bracket": [
      2,
      "never"
    ],
    "flowtype/space-before-type-colon": [
      2,
      "never"
    ],
    "flowtype/union-intersection-spacing": [
      2,
      "always"
    ],
    "flowtype/use-flow-type": 1,
    "flowtype/valid-syntax": 1
  },
  "plugins": [
    "flowtype",
    "react"
  ]
}
