1.0.12 • Published 4 years ago
eslint-config-rickschubert v1.0.12
ESLint Configuration "Rick Schubert"
Preferring ES6, readability and low ambiguities. Extends the recommended ruleset with some useful additions.
How to use
- Install:
npm install eslint-config-rickschubert --save-dev - Add it to your ESLint configuration:
{
"extends": ["rickschubert"]
}Typescript
- Install the Typescript ESLint parser and plugin:
npm i @typescript-eslint/eslint-plugin @typescript-eslint/parser --save-dev - Add parser and plugin to your ESLint configuration:
{
"extends": ["rickschubert"],
"plugins": ["@typescript-eslint"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"modules": true
}
}
}- Currently, the TSLint parser has a few minor issues. For example, importing types triggers the rule
no-unused-varsdespite them being actually used as type annotations.
Rules in detail
Environments: node, es6, browser
Unless noted, all rules are errors.
| Rule | Description |
|---|---|
| arrow-parens | Always wrap function arguments in brackets. |
| brace-style | Curly brackets start after the keyword, not underneath. |
| comma-dangle | Dangling commas in multiline objects, functions, arrays. |
| complexity | Maximum cyclomatic complexity of 3 to enforce highly maintaineable code (warning). |
| curly | Curly brackets after if statements to avoid ambiguity when line breaks occur. |
| eol-last | Empty line at the end of the file. |
| func-call-spacing | Brackets () to invoke a function have to stand right next to the function name. |
| global-require | require() statements should be at the top of the file (warning). |
| linebreak-style | UNIX linebreaks. |
| no-await-in-loop | Disallow await in loops (should use Promise.all() instead). |
| no-default-export | Only allow named exports for increased consistency and clarity when importing modules. |
| no-floating-decimal | Numbers have to be clear, i.e. 0.4 instead of .4. |
| no-implicit-coercion | Converting types from one to another have to be explicit. |
| no-lone-blocks | No curly brackets unless necessary. |
| no-lonely-if | Use else if instead of a lonely if wrapped inside an else. |
| no-loop-func | Functions cannot be declared inside loops, they should be declared outside. |
| no-template-curly-in-string | Avoid confusion whether a string is templated or not. |
| no-throw-literal | Throw errors explicitly, not just strings or values. |
| no-var | Use ES6 block-scopedconst and let, never var. |
| one-var | Don't declare multiple variables in one line. |
| prefer-const | let should only be used where reassignment is necessary. |
| prefer-promise-reject-errors | Promises should be rejected with a clear error, not a simple value. |
| prefer-spread | Use ES6 spread operator instead of difficult to understand ES5 .apply(). |
| prefer-template | Use template strings instead of string concatenation (warning). |
| quotes | Use unescaped double quotes. |
| require-await | async functions should perform an await, otherwise async keyword is unnecessary. |
| semi | Don't use semicolons. |
| yoda | Don't use unintuitive conditions. |