2022-10-12 14:21:49 +00:00
module . exports = {
env : {
browser : true ,
es2021 : true ,
} ,
extends : [
'react-app' ,
'react-app/jest' ,
'plugin:react/recommended' ,
'airbnb' ,
'plugin:jest/recommended' ,
'plugin:prettier/recommended' ,
'plugin:sonarjs/recommended' ,
'plugin:import/errors' ,
'plugin:import/warnings' ,
'plugin:import/typescript' ,
] ,
parser : '@typescript-eslint/parser' ,
parserOptions : {
ecmaFeatures : {
jsx : true ,
} ,
ecmaVersion : 'latest' ,
sourceType : 'module' ,
} ,
plugins : [ 'react' , 'sonarjs' , '@typescript-eslint' ] ,
rules : {
2023-04-04 13:13:56 +00:00
// according to https://github.com/typescript-eslint/typescript-eslint/issues/2621, You should turn off the eslint core rule and turn on the typescript-eslint rule
// but not sure which of the above "extends" statements is maybe bringing in eslint core
'no-shadow' : 'off' ,
'@typescript-eslint/no-shadow' : [ 'error' ] ,
2022-10-12 14:21:49 +00:00
'jest/expect-expect' : 'off' ,
'react/jsx-no-bind' : 'off' ,
'jsx-a11y/no-autofocus' : 'off' ,
'jsx-a11y/label-has-associated-control' : 'off' ,
'no-console' : 'off' ,
'react/jsx-filename-extension' : [
1 ,
{ extensions : [ '.js' , '.jsx' , '.tsx' , '.ts' ] } ,
] ,
'react/react-in-jsx-scope' : 'off' ,
'react/require-default-props' : 'off' ,
2022-11-15 22:35:16 +00:00
'import/prefer-default-export' : 'off' ,
2023-04-04 13:13:56 +00:00
'no-unused-vars' : 'off' ,
'@typescript-eslint/no-unused-vars' : [
2022-10-12 14:21:49 +00:00
'error' ,
{
destructuredArrayIgnorePattern : '^_' ,
varsIgnorePattern : '_' ,
argsIgnorePattern : '^_' ,
} ,
] ,
'import/extensions' : [
'error' ,
'ignorePackages' ,
{
js : 'never' ,
jsx : 'never' ,
ts : 'never' ,
tsx : 'never' ,
} ,
] ,
} ,
} ;