nginx-proxy-manager/frontend/.eslintrc.cjs

114 lines
2.7 KiB
JavaScript

module.exports = {
env: {
browser: true,
es2020: true,
},
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react-hooks/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:prettier/recommended",
"plugin:react/recommended",
"prettier",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["react-refresh"],
settings: {
"import/resolver": {
// You will also need to install and configure the TypeScript resolver
// See also https://github.com/import-js/eslint-import-resolver-typescript#configuration
typescript: true,
node: true,
},
},
rules: {
"import/default": 0,
"import/no-named-as-default-member": 0,
"import/no-named-as-default": 0,
"react-refresh/only-export-components": 0,
"react/react-in-jsx-scope": 0,
"prettier/prettier": ["error"],
"@typescript-eslint/ban-ts-comment": [
"error",
{
"ts-ignore": "allow-with-description",
},
],
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
"@typescript-eslint/explicit-function-return-type": ["off"],
"@typescript-eslint/explicit-module-boundary-types": ["off"],
"@typescript-eslint/explicit-member-accessibility": ["off"],
"@typescript-eslint/no-empty-function": ["off"],
"@typescript-eslint/no-explicit-any": ["off"],
"@typescript-eslint/no-non-null-assertion": ["off"],
"@typescript-eslint/naming-convention": [
"error",
{
selector: "default",
format: ["camelCase", "PascalCase", "UPPER_CASE"],
leadingUnderscore: "allow",
trailingUnderscore: "allow",
filter: {
regex: "^(2xl)$",
match: false,
},
},
],
"react-hooks/rules-of-hooks": ["error"],
"react-hooks/exhaustive-deps": [
"warn",
{
additionalHooks: "useAction|useReduxAction",
},
],
"react/jsx-curly-brace-presence": [
"warn",
{
props: "never",
children: "never",
},
],
"no-restricted-globals": ["off"],
"import/extensions": 0, // We let webpack handle resolving file extensions
"import/order": [
"error",
{
alphabetize: {
order: "asc",
caseInsensitive: true,
},
"newlines-between": "always",
pathGroups: [
{
pattern: "@(react)",
group: "external",
position: "before",
},
{
pattern: "@/@(fixtures|jest)/**",
group: "internal",
position: "before",
},
{
pattern: "@/**",
group: "internal",
},
],
pathGroupsExcludedImportTypes: ["builtin", "internal"],
groups: [
"builtin",
"external",
"internal",
["parent", "sibling", "index"],
],
},
],
},
};