142 lines
2.3 KiB
Text
142 lines
2.3 KiB
Text
{
|
|
"root": true,
|
|
"env": {
|
|
"es2021": true,
|
|
"node": true,
|
|
"commonjs": true
|
|
},
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:import/recommended",
|
|
"plugin:import/typescript",
|
|
"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",
|
|
// 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"
|
|
}
|
|
],
|
|
// Import Rules
|
|
"import/order": [
|
|
"error",
|
|
{
|
|
"newlines-between": "always-and-inside-groups",
|
|
"groups": [
|
|
[
|
|
"builtin",
|
|
"external",
|
|
"internal",
|
|
"sibling",
|
|
"parent",
|
|
"index",
|
|
"object",
|
|
"type"
|
|
]
|
|
]
|
|
}
|
|
],
|
|
"import/newline-after-import": "error"
|
|
},
|
|
"reportUnusedDisableDirectives": true
|
|
}
|