remithomas / eslint-plugin-ban

Ban some methods and functions
ISC License
31 stars 4 forks source link
eslint eslint-plugin

eslint-plugin-ban Build Status npm version

Allows you to bannish some methods or functions.. Inspired by tslint ban rule

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-ban:

$ npm install eslint-plugin-ban --save-dev

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

Usage

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

{
  "plugins": ["ban"]
}

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

{
  "rules": {
    "ban/ban": [
      2,
      { "name": "functionName", "message": "Prefer use functionName2" }
    ]
  }
}

Some examples

An error

{
  "rules": {
    "ban/ban": [
      2,
      {
        "name": ["*", "push"],
        "message": "Prefer use es6 spread like [...items, newItem]"
      }
    ]
  }
}

A simple warning

{
  "rules": {
    "ban/ban": [
      1,
      {
        "name": "api",
        "message": "This function is deprecated, please use api.call()"
      }
    ]
  }
}

Multiple errors

{
  "rules": {
    "ban/ban": [
      "error",
      {
        "name": "api",
        "message": "This function is deprecated, please use api.call()"
      },
      {
        "name": ["*", "push"],
        "message": "Prefer use es6 spread like [...items, newItem]"
      },
      { "name": "functionName", "message": "Prefer use functionName2" }
    ]
  }
}

Widcard

{
  "rules": {
    "ban/ban": [
      2,
      { "name": ["console", "*"], "message": "Please use our logger" }
    ]
  }
}

Todo

Contributing

Please feel free to submit, comment anything on this repo :)