133 lines
3.2 KiB
JSON
133 lines
3.2 KiB
JSON
|
{
|
||
|
"root": true,
|
||
|
"env": {
|
||
|
"browser": true,
|
||
|
"es2021": true,
|
||
|
"jest": true
|
||
|
},
|
||
|
"parser": "@typescript-eslint/parser",
|
||
|
"parserOptions": {
|
||
|
"ecmaFeatures": {
|
||
|
"jsx": true
|
||
|
},
|
||
|
"ecmaVersion": "latest",
|
||
|
"sourceType": "module"
|
||
|
},
|
||
|
"extends": [
|
||
|
"eslint:recommended",
|
||
|
"plugin:react/recommended",
|
||
|
"plugin:@typescript-eslint/recommended",
|
||
|
"plugin:prettier/recommended"
|
||
|
],
|
||
|
"plugins": [
|
||
|
"jest",
|
||
|
"cypress",
|
||
|
"import",
|
||
|
"@typescript-eslint",
|
||
|
"prettier"
|
||
|
],
|
||
|
"overrides": [
|
||
|
{
|
||
|
"files": ["test/**"],
|
||
|
"plugins": ["jest"],
|
||
|
"extends": ["plugin:jest/recommended", "plugin:jest/style"],
|
||
|
"rules": { "jest/prefer-expect-assertions": "off" }
|
||
|
},
|
||
|
{
|
||
|
"files": ["*.ts", "*.tsx"],
|
||
|
"plugins": [
|
||
|
"@typescript-eslint"
|
||
|
],
|
||
|
"rules": {
|
||
|
"no-var": "error",
|
||
|
"no-dupe-class-members": "off",
|
||
|
"no-undef": "off",
|
||
|
"no-redeclare": "off",
|
||
|
"@typescript-eslint/no-redeclare": ["warn"],
|
||
|
"@typescript-eslint/consistent-type-assertions": ["warn"],
|
||
|
"no-array-constructor": "off",
|
||
|
"@typescript-eslint/no-array-constructor": ["warn"],
|
||
|
"no-use-before-define": "off",
|
||
|
"@typescript-eslint/no-use-before-define": [
|
||
|
"warn",
|
||
|
{
|
||
|
"functions": false,
|
||
|
"classes": false,
|
||
|
"variables": false,
|
||
|
"typedefs": false
|
||
|
}
|
||
|
],
|
||
|
"no-unused-expressions": "off",
|
||
|
"@typescript-eslint/no-unused-expressions": [
|
||
|
"error",
|
||
|
{
|
||
|
"allowShortCircuit": true,
|
||
|
"allowTernary": true,
|
||
|
"allowTaggedTemplates": true
|
||
|
}
|
||
|
],
|
||
|
"no-unused-vars": "off",
|
||
|
"@typescript-eslint/no-unused-vars": [
|
||
|
"warn",
|
||
|
{
|
||
|
"args": "none",
|
||
|
"ignoreRestSiblings": true
|
||
|
}
|
||
|
],
|
||
|
"no-useless-constructor": "off",
|
||
|
"@typescript-eslint/no-useless-constructor": ["warn"]
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"files": ["cypress/e2e/**/*.cy.ts"],
|
||
|
"extends": ["plugin:cypress/recommended"],
|
||
|
"rules": {
|
||
|
"@typescript-eslint/no-unused-expressions": "off",
|
||
|
"@typescript-eslint/no-empty-function": "off",
|
||
|
"spaced-comment": "off",
|
||
|
"camelcase": "off"
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"rules": {
|
||
|
"no-undef-init": "warn",
|
||
|
"no-useless-return": "warn",
|
||
|
"no-duplicate-imports": "warn",
|
||
|
"import/first": "warn",
|
||
|
"import/no-anonymous-default-export": [
|
||
|
"warn",
|
||
|
{
|
||
|
"allowArray": true,
|
||
|
"allowLiteral": true,
|
||
|
"allowObject": true
|
||
|
}
|
||
|
],
|
||
|
"prefer-const": "warn",
|
||
|
"prefer-spread": "warn",
|
||
|
"camelcase": "error",
|
||
|
"spaced-comment": "error",
|
||
|
"dot-notation": "warn",
|
||
|
"quotes": ["error", "single"],
|
||
|
"prettier/prettier": [
|
||
|
"error",
|
||
|
{
|
||
|
"printWidth": 120,
|
||
|
"tabWidth": 2,
|
||
|
"useTabs": false,
|
||
|
"semi": true,
|
||
|
"singleQuote": true,
|
||
|
"endOfLine": "auto",
|
||
|
"jsxSingleQuote": false,
|
||
|
"bracketSpacing": true,
|
||
|
"bracketSameLine": false,
|
||
|
"arrowParens": "always"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"settings": {
|
||
|
"import/resolver": {
|
||
|
"typescript": {}
|
||
|
}
|
||
|
}
|
||
|
}
|