using my boilerplate yuh
This commit is contained in:
208
.eslintrc
Normal file
208
.eslintrc
Normal file
@@ -0,0 +1,208 @@
|
||||
{
|
||||
"root": true,
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true,
|
||||
"node": true,
|
||||
"webextensions": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:react-hooks/recommended",
|
||||
"airbnb-base",
|
||||
"airbnb/rules/react",
|
||||
"airbnb-typescript",
|
||||
"prettier"
|
||||
],
|
||||
"plugins": [
|
||||
"import",
|
||||
"jsdoc",
|
||||
"react-prefer-function-component"
|
||||
],
|
||||
"globals": {
|
||||
"Atomics": "readonly",
|
||||
"SharedArrayBuffer": "readonly",
|
||||
"debugger": true,
|
||||
"browser": true,
|
||||
"context": true,
|
||||
"JSX": true
|
||||
},
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"project": "./tsconfig.json",
|
||||
"ecmaVersion": 2022,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true,
|
||||
"modules": true,
|
||||
"experimentalObjectRestSpread": true
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
},
|
||||
"jsdoc": {
|
||||
"mode": "typescript"
|
||||
},
|
||||
"import/parsers": {
|
||||
"@typescript-eslint/parser": [
|
||||
".ts",
|
||||
".tsx"
|
||||
]
|
||||
},
|
||||
"import/resolver": {
|
||||
"typescript": {
|
||||
"alwaysTryTypes": true,
|
||||
"project": "./tsconfig.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"prefer-const": [
|
||||
"off",
|
||||
{
|
||||
"destructuring": "any",
|
||||
"ignoreReadBeforeAssign": false
|
||||
}
|
||||
],
|
||||
"no-inner-declarations": "off",
|
||||
"sort-imports": "off",
|
||||
"no-case-declarations": "off",
|
||||
"no-unreachable": "warn",
|
||||
"no-constant-condition": "error",
|
||||
"space-before-function-paren": "off",
|
||||
"no-undef": "off",
|
||||
"no-return-await": "off",
|
||||
"@typescript-eslint/return-await": "off",
|
||||
"@typescript-eslint/no-shadow": [
|
||||
"off"
|
||||
],
|
||||
"@typescript-eslint/no-use-before-define": [
|
||||
"off"
|
||||
],
|
||||
"class-methods-use-this": "off",
|
||||
"react-hooks/exhaustive-deps": "warn",
|
||||
"@typescript-eslint/lines-between-class-members": "off",
|
||||
"no-param-reassign": [
|
||||
"error",
|
||||
{
|
||||
"props": false
|
||||
}
|
||||
],
|
||||
"no-console": "off",
|
||||
"consistent-return": "off",
|
||||
"react/destructuring-assignment": "off",
|
||||
"import/prefer-default-export": "off",
|
||||
"no-promise-executor-return": "off",
|
||||
"import/no-cycle": "off",
|
||||
"import/no-extraneous-dependencies": "off",
|
||||
"react/jsx-props-no-spreading": "off",
|
||||
"keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
"before": true,
|
||||
"after": true
|
||||
}
|
||||
],
|
||||
"no-continue": "off",
|
||||
"space-before-blocks": [
|
||||
"error",
|
||||
{
|
||||
"functions": "always",
|
||||
"keywords": "always",
|
||||
"classes": "always"
|
||||
}
|
||||
],
|
||||
"react/jsx-filename-extension": [
|
||||
1,
|
||||
{
|
||||
"extensions": [
|
||||
".tsx"
|
||||
]
|
||||
}
|
||||
],
|
||||
"react/no-deprecated": "warn",
|
||||
"react/prop-types": "off",
|
||||
"react-prefer-function-component/react-prefer-function-component": [
|
||||
"warn",
|
||||
{
|
||||
"allowComponentDidCatch": false
|
||||
}
|
||||
],
|
||||
"react/function-component-definition": "off",
|
||||
"react/button-has-type": "off",
|
||||
"jsdoc/require-param-type": "off",
|
||||
"jsdoc/require-returns-type": "off",
|
||||
"jsdoc/newline-after-description": "off",
|
||||
"react/require-default-props": "off",
|
||||
"jsdoc/require-jsdoc": [
|
||||
"warn",
|
||||
{
|
||||
"enableFixer": true,
|
||||
"publicOnly": true,
|
||||
"checkConstructors": false,
|
||||
"require": {
|
||||
"ArrowFunctionExpression": true,
|
||||
"ClassDeclaration": true,
|
||||
"ClassExpression": true,
|
||||
"FunctionExpression": true
|
||||
},
|
||||
"contexts": [
|
||||
"MethodDefinition:not([key.name=\"componentDidMount\"]):not([key.name=\"render\"])",
|
||||
"ArrowFunctionExpression",
|
||||
"ClassDeclaration",
|
||||
"ClassExpression",
|
||||
"ClassProperty:not([key.name=\"state\"]):not([key.name=\"componentDidMount\"])",
|
||||
"FunctionDeclaration",
|
||||
"FunctionExpression",
|
||||
"TSDeclareFunction",
|
||||
"TSEnumDeclaration",
|
||||
"TSInterfaceDeclaration",
|
||||
"TSMethodSignature",
|
||||
"TSModuleDeclaration",
|
||||
"TSTypeAliasDeclaration"
|
||||
]
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
"@typescript-eslint/no-unused-vars": "warn",
|
||||
"@typescript-eslint/naming-convention": "off",
|
||||
"@typescript-eslint/space-before-function-paren": "off",
|
||||
"@typescript-eslint/ban-ts-comment": "off",
|
||||
"@typescript-eslint/no-empty-interface": "warn",
|
||||
"import/no-restricted-paths": [
|
||||
"error",
|
||||
{
|
||||
"zones": [
|
||||
{
|
||||
"target": "./src/background",
|
||||
"from": "./src/views",
|
||||
"message": "You cannot import into the `background` directory from the `views` directory (i.e. content script files) because it will break the build!"
|
||||
},
|
||||
{
|
||||
"target": "./src/views",
|
||||
"from": "./src/background",
|
||||
"message": "You cannot import into the `views` directory from the `background` directory (i.e. background script files) because it will break the build!"
|
||||
},
|
||||
{
|
||||
"target": "./src/shared",
|
||||
"from": "./",
|
||||
"except": [
|
||||
"./src/shared",
|
||||
"./node_modules"
|
||||
],
|
||||
"message": "You cannot import into `shared` from an external directory."
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"no-restricted-syntax": [
|
||||
"error",
|
||||
"ForInStatement",
|
||||
"LabeledStatement",
|
||||
"WithStatement"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user