1.0.12 • Published 2 years ago

eslint-config-rickschubert v1.0.12

Weekly downloads
389
License
ISC
Repository
-
Last release
2 years ago

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-vars despite them being actually used as type annotations.

Rules in detail

Environments: node, es6, browser

Unless noted, all rules are errors.

RuleDescription
arrow-parensAlways wrap function arguments in brackets.
brace-styleCurly brackets start after the keyword, not underneath.
comma-dangleDangling commas in multiline objects, functions, arrays.
complexityMaximum cyclomatic complexity of 3 to enforce highly maintaineable code (warning).
curlyCurly brackets after if statements to avoid ambiguity when line breaks occur.
eol-lastEmpty line at the end of the file.
func-call-spacingBrackets () to invoke a function have to stand right next to the function name.
global-requirerequire() statements should be at the top of the file (warning).
linebreak-styleUNIX linebreaks.
no-await-in-loopDisallow await in loops (should use Promise.all() instead).
no-default-exportOnly allow named exports for increased consistency and clarity when importing modules.
no-floating-decimalNumbers have to be clear, i.e. 0.4 instead of .4.
no-implicit-coercionConverting types from one to another have to be explicit.
no-lone-blocksNo curly brackets unless necessary.
no-lonely-ifUse else if instead of a lonely if wrapped inside an else.
no-loop-funcFunctions cannot be declared inside loops, they should be declared outside.
no-template-curly-in-stringAvoid confusion whether a string is templated or not.
no-throw-literalThrow errors explicitly, not just strings or values.
no-varUse ES6 block-scopedconst and let, never var.
one-varDon't declare multiple variables in one line.
prefer-constlet should only be used where reassignment is necessary.
prefer-promise-reject-errorsPromises should be rejected with a clear error, not a simple value.
prefer-spreadUse ES6 spread operator instead of difficult to understand ES5 .apply().
prefer-templateUse template strings instead of string concatenation (warning).
quotesUse unescaped double quotes.
require-awaitasync functions should perform an await, otherwise async keyword is unnecessary.
semiDon't use semicolons.
yodaDon't use unintuitive conditions.
1.0.12

2 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago