Files
2025-05-28 09:55:51 +08:00

254 lines
5.5 KiB
JSON

{
"env": {
"browser": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/strict",
"plugin:jsdoc/recommended",
"plugin:jsdoc/recommended-typescript",
"plugin:prettier/recommended",
"plugin:react/recommended",
"plugin:unicorn/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"project": [
"tsconfig.json"
],
"sourceType": "module"
},
"plugins": [
"@limegrass/import-alias",
"@typescript-eslint",
"jsdoc",
"prettier",
"simple-import-sort",
"unicorn"
],
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
"@limegrass/import-alias/import-alias": "warn",
"@typescript-eslint/ban-types": [
"error",
{
"types": {
"{}": false
}
}
],
"@typescript-eslint/consistent-type-definitions": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-this-alias": "off",
"@typescript-eslint/no-unnecessary-condition": "off",
"@typescript-eslint/non-nullable-type-assertion-style": "off",
"camelcase": [
"warn",
{
"properties": "always"
}
],
"eqeqeq": "error",
"jsdoc/check-param-names": "off",
"jsdoc/require-jsdoc": [
"warn",
{
"require": {
"ArrowFunctionExpression": true,
"ClassDeclaration": true,
"ClassExpression": true,
"FunctionDeclaration": true,
"FunctionExpression": true,
"MethodDefinition": true
}
}
],
"jsdoc/require-param": [
"warn",
{
"checkDestructured": false,
"checkDestructuredRoots": false
}
],
"padding-line-between-statements": [
"warn",
{
"blankLine": "always",
"prev": "*",
"next": [
"block",
"block-like",
"class",
"do",
"for",
"function",
"if",
"iife",
"multiline-block-like",
"multiline-const",
"multiline-expression",
"multiline-let",
"multiline-var",
"switch",
"try",
"while",
"with"
]
},
{
"blankLine": "always",
"prev": [
"block",
"block-like",
"class",
"do",
"for",
"function",
"if",
"iife",
"multiline-block-like",
"multiline-const",
"multiline-expression",
"multiline-let",
"multiline-var",
"switch",
"try",
"while",
"with"
],
"next": "*"
},
{
"blankLine": "always",
"prev": "import",
"next": [
"block",
"block-like",
"break",
"case",
"cjs-export",
"class",
"const",
"continue",
"debugger",
"default",
"directive",
"do",
"empty",
"export",
"expression",
"for",
"function",
"if",
"iife",
"let",
"multiline-block-like",
"multiline-const",
"multiline-expression",
"multiline-let",
"multiline-var",
"return",
"singleline-const",
"singleline-let",
"singleline-var",
"switch",
"throw",
"try",
"var",
"while",
"with"
]
},
{
"blankLine": "always",
"prev": [
"block",
"block-like",
"break",
"case",
"cjs-import",
"class",
"const",
"continue",
"debugger",
"default",
"directive",
"do",
"empty",
"expression",
"for",
"function",
"if",
"iife",
"import",
"let",
"multiline-block-like",
"multiline-const",
"multiline-expression",
"multiline-let",
"multiline-var",
"return",
"singleline-const",
"singleline-let",
"singleline-var",
"switch",
"throw",
"try",
"var",
"while",
"with"
],
"next": "export"
}
],
"no-async-promise-executor": "off",
"no-extra-semi": "warn",
"no-undef": "off",
"no-var": "error",
"prefer-const": "warn",
"prettier/prettier": "warn",
"react/prop-types": "off",
"react/react-in-jsx-scope": "off",
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"spaced-comment": [
"warn",
"always",
{
"block": {
"balanced": true
},
"markers": [
"/"
]
}
],
"unicorn/filename-case": "off",
"unicorn/import-style": [
"error",
{
"styles": {
"node:path": {
"named": true
}
}
}
],
"unicorn/no-object-as-default-parameter": "off",
"unicorn/no-useless-undefined": "off",
"unicorn/numeric-separators-style": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prefer-spread": "off",
"unicorn/prevent-abbreviations": "off",
"unicorn/switch-case-braces": "off"
}
}