0.1.12 • Published 4 years ago

eslint-plugin-clean-code v0.1.12

Weekly downloads
1,033
License
MIT
Repository
github
Last release
4 years ago

eslint-plugin-clean-code

Clean code ESLint plugin

Installation

You'll first need to install ESLint:

$ npm install --save-dev eslint 

Next, install eslint-plugin-clean-code:

$ npm install --save-dev eslint-plugin-clean-code

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-clean-code globally.

Usage

Add clean-code to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
    "plugins": [
        "clean-code"
    ]
}

Then configure the rules you want to use under the rules section.

{
    "rules": {
        "clean-code/feature-envy": 2
    }
}

Supported Rules

| Rule name         | Description                                                                      |
--------------------------------------------------------------------------------------------------------
| feature-envy      | Reports the "Feature Envy" code smell. Feature envy is defined as occurring when |
|                   | a method calls methods on another class three or more times. Feature envy is     |
|                   | often an indication that functionality is located in the wrong class.            |

Todo

  • Allow end-user configuration of object name/class for which feature envy is not reported

  • Chain of 'instanceof' checks

    Reports any chains of if-else statements all of whose conditions are instanceof expressions or class equality
    expressions (e.g. comparison with String.class). Such constructions usually indicate a failure of object-oriented
    design, which dictates that such type-based dispatch should be done via polymorphic method calls rather than 
    explicit chains of type tests. 
  • 'if' statement with too many branches

    Reports if statements with too many branches. Such statements may be confusing, and are often the sign of 
    inadequate levels of design abstraction.
  • 'switch' statement outside of factory class/method

  • Method call violates Law of Demeter

  • Overly complex boolean expression

Contributing

Feel free to contribute to any of above Todos or supply your own clean code rule not given in Todos.

0.1.12

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago