115 lines
2.9 KiB
JSON
115 lines
2.9 KiB
JSON
{
|
|
"root": true,
|
|
"settings": {
|
|
"react": {
|
|
"version": "detect"
|
|
},
|
|
"import/resolver": {
|
|
"node": {
|
|
"extensions": [".js", ".jsx", ".ts", ".tsx"]
|
|
}
|
|
}
|
|
},
|
|
"env": {
|
|
"browser": true,
|
|
"es2021": true
|
|
},
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"project": ["./tsconfig.json"]
|
|
},
|
|
"plugins": [
|
|
"react-native",
|
|
"react",
|
|
"react-hooks",
|
|
"@typescript-eslint",
|
|
"jest",
|
|
"unicorn",
|
|
"prettier"
|
|
],
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:react/recommended",
|
|
"plugin:react-hooks/recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
|
"plugin:@typescript-eslint/strict",
|
|
"plugin:jest/recommended",
|
|
"plugin:unicorn/recommended"
|
|
],
|
|
"rules": {
|
|
"camelcase": "warn",
|
|
"curly": ["error", "multi-line"],
|
|
"eol-last": ["error", "always"],
|
|
"semi": ["error", "always"],
|
|
"quotes": ["error", "single"],
|
|
"no-await-in-loop": "warn",
|
|
"no-constructor-return": "error",
|
|
"no-duplicate-imports": "error",
|
|
"no-self-compare": "error",
|
|
"no-unreachable-loop": "error",
|
|
"no-trailing-spaces": "error",
|
|
"no-console": "warn",
|
|
"react/jsx-filename-extension": [
|
|
"warn",
|
|
{ "extensions": [".js", ".jsx", ".ts", ".tsx"] }
|
|
],
|
|
"react/jsx-props-no-spreading": "off",
|
|
"react-native/no-unused-styles": "error",
|
|
"react-native/no-inline-styles": "error",
|
|
"react-native/no-color-literals": "error",
|
|
"react-native/no-raw-text": "off",
|
|
"no-shadow": "off",
|
|
"@typescript-eslint/no-shadow": ["error"],
|
|
"no-unused-vars": "off",
|
|
"@typescript-eslint/no-unused-vars": ["error"],
|
|
"no-use-before-define": "off",
|
|
"@typescript-eslint/no-use-before-define": ["error"],
|
|
"@typescript-eslint/require-await": "warn",
|
|
"@typescript-eslint/no-misused-promises": [
|
|
"error",
|
|
{
|
|
"checksVoidReturn": false
|
|
}
|
|
],
|
|
"@typescript-eslint/naming-convention": [
|
|
"error",
|
|
{
|
|
"selector": "default",
|
|
"format": ["camelCase"]
|
|
},
|
|
{
|
|
"selector": "variableLike",
|
|
"format": ["camelCase", "PascalCase"]
|
|
},
|
|
{
|
|
"selector": "memberLike",
|
|
"format": ["camelCase"]
|
|
},
|
|
{
|
|
"selector": "typeLike",
|
|
"format": ["PascalCase"]
|
|
},
|
|
{
|
|
"selector": "property",
|
|
"format": ["camelCase"]
|
|
},
|
|
{
|
|
"selector": "method",
|
|
"format": ["camelCase"]
|
|
},
|
|
{
|
|
"selector": ["enumMember", "enum"],
|
|
"format": ["UPPER_CASE"]
|
|
}
|
|
],
|
|
"unicorn/empty-brace-spaces": "off",
|
|
"unicorn/expiring-todo-comments": "off",
|
|
"unicorn/no-array-for-each": "off",
|
|
"unicorn/filename-case": ["error", { "case": "camelCase" }],
|
|
"unicorn/numeric-separators-style": "off",
|
|
"unicorn/prevent-abbreviations": "off"
|
|
},
|
|
"ignorePatterns": ["*.config.js"]
|
|
}
|