70 строки
2.7 KiB
JSON
70 строки
2.7 KiB
JSON
{
|
|
"env": {
|
|
"browser": false,
|
|
"es6": true,
|
|
"node": true
|
|
},
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"project": "tsconfig.json",
|
|
"sourceType": "module"
|
|
},
|
|
"ignorePatterns": "src/test/clientExtension",
|
|
"plugins": [
|
|
"@typescript-eslint"
|
|
],
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended"
|
|
],
|
|
"rules": {
|
|
"@typescript-eslint/naming-convention": [ // Naming is enforced with some exceptions below
|
|
"warn",
|
|
{ // Names should be either camelCase or PascalCase, both are extensively used throughout this project
|
|
"selector": "default",
|
|
"format": [
|
|
"camelCase",
|
|
"PascalCase"
|
|
]
|
|
},
|
|
{ // const variables can also have UPPER_CASE
|
|
"selector": "variable",
|
|
"modifiers": [
|
|
"const"
|
|
],
|
|
"format": [
|
|
"camelCase",
|
|
"PascalCase",
|
|
"UPPER_CASE"
|
|
]
|
|
},
|
|
{ // private class properties can also have leading _underscores
|
|
"selector": "classProperty",
|
|
"modifiers": [
|
|
"private"
|
|
],
|
|
"format": [
|
|
"camelCase",
|
|
"PascalCase"
|
|
],
|
|
"leadingUnderscore": "allow"
|
|
}
|
|
],
|
|
"@typescript-eslint/no-floating-promises": "warn", // Floating promises are bad, should do `void thePromise()`
|
|
"@typescript-eslint/no-inferrable-types": "off", // This gets upset about e.g. `const foo: string = 'bar'` because it's obvious that it's a string; it doesn't matter enough to enforce
|
|
"@typescript-eslint/no-unused-vars": [ // Unused variables aren't allowed, with an exception (below)
|
|
"warn",
|
|
{ // As a function parameter, unused parameters are allowed
|
|
"args": "none"
|
|
}
|
|
],
|
|
"@typescript-eslint/semi": "warn", // Elevate this to warning, we like semicolons
|
|
"curly": "warn", // May have been a mistake to include a `{curly}` inside a template string, you might mean `${curly}`
|
|
"eqeqeq": "warn", // Should use `===`, not `==`, nearly 100% of the time
|
|
"no-extra-boolean-cast": "off", // We !!flatten a lot of things into booleans this way
|
|
"no-throw-literal": "warn", // Elevate this from suggestion to warning
|
|
"semi": "off" // Covered by @typescript-eslint/semi
|
|
}
|
|
}
|