module.exports = { extends: [ 'airbnb-typescript', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended', 'prettier', 'prettier/react', 'prettier/@typescript-eslint' ], plugins: ['react', '@typescript-eslint', 'jest'], env: { browser: true, es6: true, jest: true, }, globals: { Atomics: 'readonly', SharedArrayBuffer: 'readonly', }, parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2018, sourceType: 'module', project: './tsconfig.json', }, rules: { indent: ['warn', 4], '@typescript-eslint/completed-docs': 0, '@typescript-eslint/interface-name': 0, '@typescript-eslint/missing-jsdoc': 0, '@typescript-eslint/no-relative-imports': 0, '@typescript-eslint/no-reserved-keywords': 0, '@typescript-eslint/no-unsafe-any': 0, '@typescript-eslint/object-literal-sort-keys': 0, quotes: [2, 'single'], 'jsx-quotes': [1, 'prefer-double'], '@typescript-eslint/strict-boolean-expressions': 0, '@typescript-eslint/typedef': 0, '@typescript-eslint/ordered-imports': 0, 'no-extra-semi': 0, 'no-prototype-builtins': 1, '@typescript-eslint/no-use-before-define': 1, 'trailing-comma': 0, 'react/require-default-props': 0, 'no-console': 0, 'consistent-return': 0, 'react/jsx-props-no-spreading': 0, 'max-line-length': 0, 'import/prefer-default-export': 0, eofline: 0, 'no-string-literal': 0, 'no-shadowed-variable': 0, semicolon: 0, 'no-param-reassign': 1, '@typescript-eslint/ban-ts-ignore': 0, '@typescript-eslint/interface-name-prefix': 0, '@typescript-eslint/no-non-null-assertion': 0, '@typescript-eslint/no-explicit-any': 0, '@typescript-eslint/camelcase': 0, 'react/jsx-wrap-multilines': [ 'error', { declaration: 'parens-new-line', assignment: 'parens-new-line', return: 'parens-new-line', arrow: 'parens-new-line', condition: 'parens-new-line', logical: 'parens-new-line', prop: 'parens-new-line' } ], }, };