{ "extends": ["eslint:recommended", "airbnb-base", "prettier"], "parser": "babel-eslint", "parserOptions": { "ecmaversion": 6, "sourceType": "module", "allowImportExportEverywhere": true }, "plugins": ["prettier"], "env": { "es6": true, "node": true }, "rules": { "prettier/prettier": "error", "arrow-body-style": 0, "camelcase": 0, "no-plusplus": [ "error", { "allowForLoopAfterthoughts": true } ], "prefer-template": 0, "consistent-return": 0, "no-underscore-dangle": 0, "no-use-before-define": 0, "global-require": 0, // Used by React Native. "no-continue": 0, "no-mixed-operators": 0, "allow-parens": 0, "no-return-assign": 0, "no-unused-vars": "warn", "object-curly-spacing": [ "error", "always", { "arraysInObjects": true, "objectsInObjects": true } ], "new-cap": [ 2, { "capIsNew": false, "newIsCap": true } ], // For immutable Record() etc. "no-class-assign": 0, // Class assign is used for higher order components. "no-nested-ternary": 0, // It's nice for JSX. "no-param-reassign": 0, // We love param reassignment. Naming is hard. "no-shadow": 0, // Shadowing is a nice language feature. Naming is hard. "import/imports-first": 0, // Este sorts by atom/sort-lines natural order. "react/jsx-filename-extension": 0, // No, JSX belongs to .js files "jsx-a11y/html-has-lang": 0, // Can't recognize the Helmet. "no-confusing-arrow": 0, // This rule is super confusing. "react/forbid-prop-types": 0, // Este is going to use Flow types. "react/no-unused-prop-types": 0, // Este is going to use Flow types. "class-methods-use-this": 0 // Good idea, but ignores React render. // "arrow-parens": 0, // Not really. }, "settings": { "import/resolver": { "babel-module": { "root": ["./src"] } } } }