254 lines
5.5 KiB
JSON
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"
|
|
}
|
|
}
|