module.exports = { root: true, parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', tsconfigRootDir: __dirname }, plugins: [ '@typescript-eslint', 'only-warn', 'prettier' ], extends: [ 'airbnb', 'airbnb-typescript', 'airbnb/hooks', 'prettier' ], rules: { 'comma-dangle': 'off', // by typescript plugin 'object-curly-spacing': 'off', // by typescript plugin 'object-curly-newline': 'off', 'arrow-parens': 'off', 'no-nested-ternary': 'off', 'max-len': 'off', 'consistent-return': 'off', 'curly': 'off', 'no-new': 'off', 'radix': ['warn', 'as-needed'], 'no-underscore-dangle': 'off', 'no-param-reassign': ['warn', {props: false}], 'no-await-in-loop': 'off', 'no-restricted-syntax': 'off', 'function-paren-newline': 'off', 'arrow-body-style': 'off', /** * Import plugin */ 'import/prefer-default-export': 'off', /** * React plugin */ 'react/jsx-indent': ['warn', 4], 'react/jsx-indent-props': ['warn', 4], 'react/button-has-type': 'off', 'react/prop-types': 'off', 'react/jsx-one-expression-per-line': 'off', 'react/jsx-uses-react': 'off', 'react/react-in-jsx-scope': 'off', 'react/function-component-definition': 'off', 'react/jsx-no-bind': 'off', 'react/require-default-props': 'off', 'react/no-danger': 'off', 'react/no-array-index-key': 'off', 'react/static-property-placement': 'off', 'react/jsx-props-no-spreading': 'off', /** * React Hooks */ 'react-hooks/exhaustive-deps': 'off', /** * Typescript plugin */ '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/lines-between-class-members': 'off', '@typescript-eslint/indent': 'off', '@typescript-eslint/object-curly-spacing': ['warn', 'never'], '@typescript-eslint/comma-dangle': ['warn', 'never'], /** * jsx-a11y plugin */ 'jsx-a11y/click-events-have-key-events': 'off', 'jsx-a11y/no-static-element-interactions': 'off', 'jsx-a11y/no-noninteractive-element-interactions': 'off', 'jsx-a11y/anchor-is-valid': 'off', 'jsx-a11y/label-has-associated-control': 'off', 'jsx-a11y/no-access-key': 'off', 'jsx-a11y/aria-role': 'off', 'jsx-a11y/no-noninteractive-tabindex': ['error', {roles: ['modal', 'popover']}] } };