{ "settings": { "react": { "createClass": "createReactClass", // Regex for Component Factory to use, // default to "createReactClass" "pragma": "React", // Pragma to use, default to "React" "fragment": "Fragment", // Fragment to use (may be a property of ), default to "Fragment" "version": "detect", // React version. "detect" automatically picks the version you have installed. // You can also use `16.0`, `16.3`, etc, if you want to override the detected value. // default to latest and warns if missing // It will default to "detect" in the future "flowVersion": "0.53" // Flow version }, "propWrapperFunctions": [ // The names of any function used to wrap propTypes, e.g. `forbidExtraProps`. If this isn't set, any propTypes wrapped in a function will be skipped. "forbidExtraProps", { "property": "freeze", "object": "Object" }, { "property": "myFavoriteWrapper" } ], "componentWrapperFunctions": [ // The name of any function used to wrap components, e.g. Mobx `observer` function. If this isn't set, components wrapped by these functions will be skipped. "observer", // `property` { "property": "styled" }, // `object` is optional { "property": "observer", "object": "Mobx" }, { "property": "observer", "object": "" } // sets `object` to whatever value `settings.react.pragma` is set to ], "linkComponents": [ // Components used as alternatives to for linking, eg. "Hyperlink", { "name": "Link", "linkAttribute": "to" } ] }, "env": { "browser": true, "es6": true, "node": true }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:react-hooks/recommended", "plugin:prettier/recommended" ], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, // "parser": "@babel/eslint-parser", "parserOptions": { "allowImportExportEverywhere": true, "sourceType": "module", "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2021 }, "plugins": ["react", "unused-imports", "@babel", "react-hooks", "prettier"], "rules": { "react/display-name": 0, "max-len": 0, "consistent-return": 0, "no-console": 0, "import/prefer-default-export": 0, "import/no-cycle": 0, "react/prop-types": 0, "react/jsx-filename-extension": 0, "react/jsx-props-no-spreading": 0, "react/jsx-fragments": 0, "react/no-danger": 0, "no-unused-vars": "warn", "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": [ "warn", { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" } ], "@babel/new-cap": "error", "@babel/no-invalid-this": "error", "@babel/no-unused-expressions": 0, "no-unused-expressions": [ "warn", { "allowShortCircuit": true, "allowTernary": true } ], "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn", "prettier/prettier": "warn", "react/no-unknown-property": [ 2, { "ignore": [ "jsx", "global" ] } ] } }