module.exports = { root: true, parser: "babel-eslint", plugins: [/*'import', */ "jsx-a11y", "react"], env: { browser: true, commonjs: true, es6: true, jest: true, node: true, }, parserOptions: { ecmaVersion: 6, sourceType: "module", ecmaFeatures: { jsx: true, generators: true, experimentalObjectRestSpread: true, }, }, settings: { "import/ignore": [ "node_modules", "\\.(json|css|jpg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm)$", ], "import/extensions": [".js"], "import/resolver": { node: { extensions: [".js", ".json"], }, }, }, rules: { // http://eslint.org/docs/rules/ "array-callback-return": "warn", camelcase: "warn", curly: "warn", "default-case": ["warn", { commentPattern: "^no default$" }], "dot-location": ["warn", "property"], "eol-last": "warn", eqeqeq: ["warn", "always"], indent: ["warn", 4, { SwitchCase: 1 }], "guard-for-in": "warn", "keyword-spacing": "warn", "new-parens": "warn", "no-array-constructor": "warn", "no-caller": "warn", "no-cond-assign": ["warn", "always"], "no-const-assign": "warn", "no-control-regex": "warn", "no-delete-var": "warn", "no-dupe-args": "warn", "no-dupe-class-members": "warn", "no-dupe-keys": "warn", "no-duplicate-case": "warn", "no-empty-character-class": "warn", "no-empty-pattern": "warn", "no-eval": "warn", "no-ex-assign": "warn", "no-extend-native": "warn", "no-extra-bind": "warn", "no-extra-label": "warn", "no-fallthrough": "warn", "no-func-assign": "warn", "no-global-assign": "warn", "no-implied-eval": "warn", "no-invalid-regexp": "warn", "no-iterator": "warn", "no-label-var": "warn", "no-labels": ["warn", { allowLoop: false, allowSwitch: false }], "no-lone-blocks": "warn", "no-loop-func": "warn", "no-mixed-operators": [ "warn", { groups: [ ["&", "|", "^", "~", "<<", ">>", ">>>"], ["==", "!=", "===", "!==", ">", ">=", "<", "<="], ["&&", "||"], ["in", "instanceof"], ], allowSamePrecedence: false, }, ], "no-multi-str": "warn", "no-new-func": "warn", "no-new-object": "warn", "no-new-symbol": "warn", "no-new-wrappers": "warn", "no-obj-calls": "warn", "no-octal": "warn", "no-octal-escape": "warn", "no-redeclare": "warn", "no-regex-spaces": "warn", "no-restricted-syntax": ["warn", "LabeledStatement", "WithStatement"], "no-script-url": "warn", "no-self-assign": "warn", "no-self-compare": "warn", "no-sequences": "warn", "no-shadow-restricted-names": "warn", "no-sparse-arrays": "warn", "no-template-curly-in-string": "warn", "no-this-before-super": "warn", "no-throw-literal": "warn", "no-undef": "warn", "no-unexpected-multiline": "warn", "no-unreachable": "warn", "no-unsafe-negation": "warn", "no-unused-expressions": "warn", "no-unused-labels": "warn", "no-unused-vars": ["warn", { vars: "local", args: "none" }], "no-use-before-define": ["warn", "nofunc"], "no-useless-computed-key": "warn", "no-useless-concat": "warn", "no-useless-constructor": "warn", "no-useless-escape": "warn", "no-useless-rename": [ "warn", { ignoreDestructuring: false, ignoreImport: false, ignoreExport: false, }, ], "no-with": "warn", "no-whitespace-before-property": "warn", "object-curly-spacing": ["warn", "always"], "operator-assignment": ["warn", "always"], radix: "warn", "require-yield": "warn", "rest-spread-spacing": ["warn", "never"], semi: "warn", strict: ["warn", "never"], "unicode-bom": ["warn", "never"], "use-isnan": "warn", "valid-typeof": "warn", "react/jsx-boolean-value": "warn", "react/jsx-closing-bracket-location": "warn", "react/jsx-curly-spacing": "warn", "react/jsx-equals-spacing": ["warn", "never"], "react/jsx-first-prop-new-line": ["warn", "multiline"], "react/jsx-handler-names": "warn", "react/jsx-indent": ["warn", 4], "react/jsx-indent-props": ["warn", 4], "react/jsx-key": "warn", // 'react/jsx-max-props-per-line': 'warn', "react/jsx-no-bind": ["warn", { allowArrowFunctions: true }], "react/jsx-no-comment-textnodes": "warn", "react/jsx-no-duplicate-props": ["warn", { ignoreCase: true }], "react/jsx-no-undef": "warn", "react/jsx-pascal-case": [ "warn", { allowAllCaps: true, ignore: [], }, ], // 'react/jsx-sort-props': 'warn', "react/jsx-tag-spacing": "warn", "react/jsx-uses-react": "warn", "react/jsx-uses-vars": "warn", "react/jsx-wrap-multilines": "warn", "react/no-deprecated": "warn", "react/no-did-mount-set-state": "warn", "react/no-did-update-set-state": "warn", "react/no-direct-mutation-state": "warn", "react/no-is-mounted": "warn", "react/no-unused-prop-types": "warn", "react/prefer-es6-class": "warn", // 'react/prefer-stateless-function': 'warn', "react/prop-types": "warn", "react/react-in-jsx-scope": "warn", "react/require-render-return": "warn", "react/self-closing-comp": "warn", // 'react/sort-comp': 'warn', // 'react/sort-prop-types': 'warn', "react/style-prop-object": "warn", "react/void-dom-elements-no-children": "warn", // https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules // 'jsx-a11y/aria-role': 'warn', // 'jsx-a11y/img-has-alt': 'warn', // 'jsx-a11y/img-redundant-alt': 'warn', // 'jsx-a11y/no-access-key': 'warn' }, };