{ "parser": "@typescript-eslint/parser", "extends": [ "airbnb", "prettier", "plugin:react-hooks/recommended" ], "env": { "browser": true, "node": true, "es6": true, "mocha": true, "jest": true, "jasmine": true }, "plugins": [ "prettier", "react", "import", "@typescript-eslint" ], "rules": { "@typescript-eslint/no-use-before-define": [ "error", { "functions": false, "ignoreTypeReferences": true, "typedefs": false, "enums": false } ], "@typescript-eslint/no-unused-vars": [ "error", { "ignoreRestSiblings": true, "caughtErrors": "none" } ], "@typescript-eslint/no-shadow": "error", "camelcase":["error", {"allow": ["^UNSAFE_"]}], "lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }], "prettier/prettier": [2], "import/default": 0, "import/prefer-default-export": 0, "import/extensions":[ "error", "ignorePackages", { "js": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "import/no-unresolved":"error", "no-new": 0, "no-debugger":0, "no-use-before-define": "off", "no-shadow":"off", "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], "jsx-a11y/no-static-element-interactions": 0, "jsx-a11y/anchor-has-content": 0, "jsx-a11y/click-events-have-key-events": 0, "jsx-a11y/anchor-is-valid": 0, "jsx-a11y/no-noninteractive-element-interactions": 0, "react/forbid-prop-types": 0, "react/jsx-filename-extension": [1, {"extensions": [".js", ".jsx",".ts",".tsx"]}], "react/jsx-props-no-spreading": [ 0, { "html": "ignore", "custom": "ignore", "explicitSpread": "ignore" } ], "react/destructuring-assignment": 0, "react/require-default-props": [2,{"ignoreFunctionalComponents":true}], "dot-notation": "off", "prefer-object-spread": "off", "react/static-property-placement": ["warn", "property assignment", { "childContextTypes": "static getter", "contextTypes": "static public field", "contextType": "static public field", "displayName": "static public field", "defaultProps": "static public field" }], "no-param-reassign": ["error", { "props": false }], "no-unused-expressions": ["error", { "allowShortCircuit": true }] }, "globals": { "fetch": true, "NodeJS": true }, "parserOptions": { "ecmaFeatures": { "experimentalObjectRestSpread": true } }, "settings": { "import/extensions": [".js", ".jsx", ".ts", ".tsx"], "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] }, "import/resolver": { "typescript": { "alwaysTryTypes":true, "project": "./tsconfig.json" }, // "webpack":{ // "config":"./webpack.config.js" // }, "node": { "paths": ["src", "tests"], "extensions": [".js", ".jsx", ".ts", ".tsx"] }, "alias": { "map": [ ["@components", "./src/components/"], ["@containers", "./src/containers/"], ["@actions", "./src/actions/"], ["@caches", "./src/caches/"], ["@constants", "./src/constants/"], ["@models", "./src/models/"], ["@themes", "./src/themes/"], ["@routes", "./src/routes/"], ["@utils", "./src/utils/"], ["@api", "./src/api/"] ] } }, "polyfills": ["fetch", "promises"] } }