{ "plugins": [ "react", "prettier", "@typescript-eslint", "eslint-comments" ], "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:prettier/recommended", "plugin:eslint-comments/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 8, "sourceType": "module", "ecmaFeatures": { "jsx": true, "impliedStrict": true, "experimentalObjectRestSpread": true }, "allowImportExportEverywhere": true, "project": [ "./tsconfig.eslint.json" ] }, "env": { "es6": true, "browser": true, "node": true }, "settings": { "react": { "version": "detect" } }, "rules": { "func-names": [ "error", "as-needed" ], "no-shadow": "error", "no-extra-semi": 0, "react/prop-types": 0, "react/react-in-jsx-scope": 0, "react/no-unescaped-entities": 0, "react/jsx-no-target-blank": 0, "react/no-string-refs": 0, "prettier/prettier": [ "error", { "printWidth": 120, "tabWidth": 2, "singleQuote": true, "trailingComma": "none", "bracketSpacing": false, "semi": true, "useTabs": false, "jsxBracketSameLine": false } ], "eslint-comments/no-unused-disable": "error" }, "overrides": [ { "files": [ "app/config/config-default.js", ".hyper.js" ], "rules": { "prettier/prettier": [ "error", { "printWidth": 120, "tabWidth": 2, "singleQuote": true, "trailingComma": "es5", "bracketSpacing": false, "semi": true, "useTabs": false, "parser": "babel", "jsxBracketSameLine": false } ] } }, { "files": [ "**.ts", "**.tsx" ], "extends": [ "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", "prettier" ], "rules": { "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/prefer-optional-chain": "error", "@typescript-eslint/ban-types": "off", "no-shadow": "off", "@typescript-eslint/no-shadow": ["error"], "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/restrict-template-expressions": "off" } } ] }