module.exports = { extends: "erb", rules: { // A temporary hack related to IDE not resolving correct package.json "import/no-extraneous-dependencies": "off", "import/no-unresolved": "error", // Since React 17 and typescript 4.1 you can safely disable the rule "react/react-in-jsx-scope": "off", "prettier/prettier": 0, "global-require": 0, "import/prefer-default-export": "off", "no-empty-function": "off", "no-await-in-loop": "off", "no-continue": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/lines-between-class-members": "off", "class-methods-use-this": "off", "promise/catch-or-return": "off", "promise/always-return": "off", "import/order": "off", "react/destructuring-assignment": "off", "promise/no-nesting": "off", "react-hooks/exhaustive-deps": "off", "@typescript-eslint/no-shadow": "off", "@typescript-eslint/no-use-before-define": "off", "jsx-a11y/click-events-have-key-events": "off", "jsx-a11y/no-static-element-interactions": "off", "react/require-default-props": "off", "consistent-return": "off", "no-underscore-dangle": "off", "no-restricted-syntax": "off", "@typescript-eslint/no-throw-literal": "off", "@typescript-eslint/no-unused-expressions": "off", "no-param-reassign": "off", "no-useless-escape": "off", "jsx-a11y/no-noninteractive-element-interactions": "off", "no-async-promise-executor": "off", "new-cap": "off", "no-new": "off", "no-plusplus": "off", "react/jsx-props-no-spreading": "off", "jsx-a11y/iframe-has-title": "off", "import/no-dynamic-require": "off", radix: "off", "jsx-a11y/alt-text": "off", "react/prop-types": "off", "import/no-cycle": "off", "prefer-promise-reject-errors": "off", "react/jsx-no-target-blank": "off", "import/extensions": "off", "lines-between-class-members": "off", "no-throw-literal": "warn", "no-use-before-define": "off", "no-useless-constructor": "off", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "error", 'react/jsx-filename-extension': [2, { 'extensions': ['.js', '.jsx', '.ts', '.tsx'] }], "no-shadow": "off", "react/function-component-definition": "off", "jsx-a11y/control-has-associated-label": "off", "react/button-has-type": "off", }, parserOptions: { ecmaVersion: 2020, sourceType: "module", tsconfigRootDir: __dirname, createDefaultProgram: true, }, globals: { JSX: true, NodeJS: true }, settings: { "import/resolver": { // See https://github.com/benmosher/eslint-plugin-import/issues/1396#issuecomment-575727774 for line below node: {}, webpack: { config: require.resolve("./.erb/configs/webpack.config.eslint.ts"), }, typescript: {}, }, "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"], }, }, "plugins": ["@typescript-eslint"] };