module.exports = { root: true, settings: { react: { version: "detect", }, }, plugins: [ "import", "react", "react-native", "prettier", "react-hooks", "jest", "@typescript-eslint", "promise", "unused-imports", ], extends: [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "prettier", "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", ], ignorePatterns: ["**/*/*.test.*", "**/*/*.js", "*.js"], parser: "@typescript-eslint/parser", parserOptions: { ecmaFeatures: { jsx: true, }, project: "./tsconfig.json", }, env: { browser: true, node: true, es6: true, "jest/globals": true, }, rules: { "max-len": ["error", 120], "react-native/no-unused-styles": 0, "react-native/split-platform-components": 0, "react-native/no-inline-styles": 2, "react-native/no-color-literals": 0, "react-native/no-raw-text": 0, "react-hooks/rules-of-hooks": 2, "react-hooks/exhaustive-deps": 2, "@typescript-eslint/ban-ts-comment": 1, "@typescript-eslint/explicit-function-return-type": 0, "@typescript-eslint/no-use-before-define": 0, "@typescript-eslint/camelcase": 0, "@typescript-eslint/no-empty-function": 0, "@typescript-eslint/no-explicit-any": 0, "@typescript-eslint/explicit-module-boundary-types": 0, "@typescript-eslint/no-var-requires": 0, "@typescript-eslint/no-non-null-assertion": 0, "prefer-destructuring": 2, "no-return-await": 0, "require-await": 2, "promise/always-return": 2, "no-nested-ternary": 2, "promise/no-return-wrap": 2, "promise/param-names": 2, "promise/catch-or-return": 2, "promise/no-nesting": 2, "promise/no-promise-in-callback": 2, "promise/no-callback-in-promise": 2, "promise/valid-params": 2, "no-void": 2, "import/namespace": 0, "import/no-unresolved": 0, "import/no-named-as-default": 0, "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], "import/no-named-as-default-member": 0, "import/no-extraneous-dependencies": 0, "import/default": 0, "import/no-cycle": 0, "import/no-duplicates": 2, "unused-imports/no-unused-imports": 2, "unused-imports/no-unused-vars": 2, "react/no-unstable-nested-components": ["error", { allowAsProps: true }], "import/extensions": [ "error", "never", { svg: "always", model: "always", style: "always", png: "always", jpg: "always", json: "always", jpeg: "always", constant: "always", }, ], "@typescript-eslint/no-floating-promises": [ 2, { ignoreIIFE: true, }, ], "react/jsx-filename-extension": [ 1, { extensions: [".js", ".jsx", ".tsx", ".ts"], }, ], "prettier/prettier": [ "error", { endOfLine: "auto", }, ], }, overrides: [ { files: ["**/*.tsx", "**/*.ts"], rules: { "react/prop-types": 0, }, }, ], };