{ "parser" : "babel-eslint", "plugins": [ "import" ], "extends" : ["airbnb"], "rules": { // Soft some rules. "camelcase": "off", "class-methods-use-this": "off", "default-case": 0, // Required default case is nonsense. "indent": [2, 4, { 'SwitchCase': 1, 'VariableDeclarator': 1 }], "linebreak-style": "off", "max-len": "off", "new-cap": [2, {"capIsNew": false, "newIsCap": true}], // For Record() etc. "newline-per-chained-call": 0, "no-cond-assign": "off", "no-floating-decimal": 0, // .5 is just fine. "no-nested-ternary": 0, // It's nice for JSX. "no-param-reassign": 0, // We love param reassignment. Naming is hard. "no-plusplus": 0, "no-prototype-builtins": 0, "no-shadow": 0, // Shadowing is a nice language feature. Naming is hard. "react/no-string-refs": 0, "no-underscore-dangle": "off", // eslint-plugin-import "import/no-unresolved": [2, {"commonjs": true}], "import/no-extraneous-dependencies": 0, "import/named": 2, "import/default": 2, "import/namespace": 2, "import/export": 2, "func-names": ["error", "as-needed"], // Overide Stateless "react/prefer-stateless-function": 0, "react/jsx-indent": [2, 4], "react/jsx-indent-props": [2, 4], "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "react/no-unused-prop-types": 0, "react/no-array-index-key": 0, "react/forbid-prop-types": 0, "react/require-default-props": 0, "jsx-a11y/anchor-has-content": 0, }, "globals": { "after": false, "afterEach": false, "before": false, "beforeEach": false, "describe": false, "it": false, "require": false, "window": true, "localStorage": true, "document": true, "navigator": true, "location": true, "XMLHttpRequest": true, "XDomainRequest": true, "Blob": true, }, "settings": { "import/ignore": [ "node_modules", "\\.json$" ], "import/parser": "babel-eslint", "import/resolve": { "extensions": [ ".js", ".jsx", ".json" ] } } }