module.exports = { parser: '@typescript-eslint/parser', extends: [ 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', 'plugin:react/recommended', 'plugin:jsx-a11y/recommended', 'plugin:react-hooks/recommended', ], plugins: ['react', '@typescript-eslint', 'jsx-a11y', 'react-hooks'], rules: { 'no-unexpected-multiline': 'error', 'no-console': ['warn', { allow: ['warn', 'error'] }], '@typescript-eslint/no-unused-vars': [ 'warn', { ignoreRestSiblings: true, argsIgnorePattern: '^_', }, ], '@typescript-eslint/ban-types': [ 'error', { extendDefaults: true, types: { '{}': false, object: false, Function: false, }, }, ], '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', // 'jsx-a11y/anchor-is-valid': [ // 'warn', // { // components: ['Link'], // specialLink: ['hrefLeft', 'hrefRight'], // aspects: ['invalidHref', 'preferButton'], // }, // ], 'jsx-a11y/no-noninteractive-element-interactions': 'off', 'jsx-a11y/click-events-have-key-events': 'off', 'jsx-a11y/no-autofocus': 'off', 'jsx-a11y/no-static-element-interactions': 'off', 'jsx-a11y/label-has-associated-control': 'off', 'react/no-unescaped-entities': 0, 'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ], 'react-hooks/rules-of-hooks': 'warn', // Checks rules of Hooks 'react-hooks/exhaustive-deps': 'warn', // Checks effect dependencies 'react/jsx-uses-react': 'off', 'react/jsx-key': 'off', 'react/display-name': 'off', 'react/react-in-jsx-scope': 'off', 'react/prop-types': 'off', // off due to false positive with extended interface }, settings: { react: { version: '999.999.999', }, }, root: true, };