127 lines
2 KiB
Text
127 lines
2 KiB
Text
|
{
|
||
|
"root": true,
|
||
|
"env": {
|
||
|
"es2021": true,
|
||
|
"node": true,
|
||
|
"commonjs": true
|
||
|
},
|
||
|
"extends": [
|
||
|
"eslint:recommended",
|
||
|
"plugin:@typescript-eslint/eslint-recommended",
|
||
|
"plugin:@typescript-eslint/recommended"
|
||
|
],
|
||
|
"parser": "@typescript-eslint/parser",
|
||
|
"parserOptions": {
|
||
|
"ecmaVersion": 2021,
|
||
|
"sourceType": "module"
|
||
|
},
|
||
|
"plugins": [
|
||
|
"@typescript-eslint",
|
||
|
"unicorn"
|
||
|
],
|
||
|
"rules": {
|
||
|
// Base Eslint Rules
|
||
|
"indent": [
|
||
|
"error",
|
||
|
"tab",
|
||
|
{
|
||
|
"SwitchCase": 1,
|
||
|
"CallExpression": {
|
||
|
"arguments": 1
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"linebreak-style": [
|
||
|
"error",
|
||
|
"unix"
|
||
|
],
|
||
|
"quotes": [
|
||
|
"error",
|
||
|
"single"
|
||
|
],
|
||
|
"semi": [
|
||
|
"error",
|
||
|
"always"
|
||
|
],
|
||
|
"eol-last": [
|
||
|
"error",
|
||
|
"always"
|
||
|
],
|
||
|
"object-curly-spacing": [
|
||
|
"error",
|
||
|
"always"
|
||
|
],
|
||
|
"default-case": "error",
|
||
|
"comma-dangle": [
|
||
|
"error",
|
||
|
"always-multiline"
|
||
|
],
|
||
|
"no-case-declarations": "off",
|
||
|
"camelcase": "off",
|
||
|
"keyword-spacing": "error",
|
||
|
"spaced-comment": [
|
||
|
"error",
|
||
|
"always"
|
||
|
],
|
||
|
"no-var": "error",
|
||
|
"eqeqeq": "error",
|
||
|
"no-eq-null": "error",
|
||
|
"arrow-parens": [
|
||
|
"error",
|
||
|
"always"
|
||
|
],
|
||
|
// TypeScript Rules
|
||
|
"@typescript-eslint/naming-convention": [
|
||
|
"error",
|
||
|
{
|
||
|
"selector": "class",
|
||
|
"format": [
|
||
|
"PascalCase"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"selector": "classProperty",
|
||
|
"modifiers": [
|
||
|
"private"
|
||
|
],
|
||
|
"format": [
|
||
|
"camelCase"
|
||
|
],
|
||
|
"leadingUnderscore": "require"
|
||
|
},
|
||
|
{
|
||
|
"selector": "interface",
|
||
|
"format": null,
|
||
|
"custom": {
|
||
|
"regex": "^I",
|
||
|
"match": true
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"selector": "enum",
|
||
|
"format": null,
|
||
|
"custom": {
|
||
|
"regex": "^E",
|
||
|
"match": true
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||
|
"@typescript-eslint/explicit-member-accessibility": [
|
||
|
"error",
|
||
|
{
|
||
|
"accessibility": "explicit"
|
||
|
}
|
||
|
],
|
||
|
"@typescript-eslint/explicit-function-return-type": "error",
|
||
|
// Unicorn Rules
|
||
|
"unicorn/filename-case": [
|
||
|
"error",
|
||
|
{
|
||
|
"case": "camelCase"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"reportUnusedDisableDirectives": true
|
||
|
}
|