eslint-plugin-ban
Version:
Allows you to bannish some methods or functions.
149 lines (115 loc) • 2.78 kB
Markdown
# eslint-plugin-ban [](https://travis-ci.org/remithomas/eslint-plugin-ban) [](https://www.npmjs.com/package/eslint-plugin-ban)
> Allows you to bannish some methods or functions. Inspired by [tslint ban rule](https://palantir.github.io/tslint/rules/ban/)
## Installation
You'll first need to install [ESLint](http://eslint.org):
```
$ npm i eslint --save-dev
```
Next, install `eslint-plugin-ban`:
```
$ npm install eslint-plugin-ban --save-dev
```
**Note 1:** Works with ESLint >= 9. For ESLint < 9, prefer using `eslint-plugin-ban` `1.x` (compatibility of newer versions not guaranteed).
**Note 2:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-ban` globally.
## Usage
### Flat config
Import `ban` plugin in your `eslint.config.js` configuration file.
```js
import pluginBan from 'eslint-plugin-ban';
```
Then use plugin and configure the rules you want to use.
```js
export default [
// ...
{
plugins: { ban: pluginBan },
rules: {
'ban/ban': [
2,
{ name: 'functionName', 'message': 'Prefer use functionName2' },
],
},
},
];
```
### Legacy config
Add `ban` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
```json
{
"plugins": ["ban"]
}
```
Then configure the rules you want to use under the rules section.
```json
{
"rules": {
"ban/ban": [
2,
{ "name": "functionName", "message": "Prefer use functionName2" }
]
}
}
```
## Some examples
> An error
```json
{
"rules": {
"ban/ban": [
2,
{
"name": ["*", "push"],
"message": "Prefer use es6 spread like [...items, newItem]"
}
]
}
}
```
> A simple warning
```json
{
"rules": {
"ban/ban": [
1,
{
"name": "api",
"message": "This function is deprecated, please use api.call()"
}
]
}
}
```
> Multiple errors
```json
{
"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
```json
{
"rules": {
"ban/ban": [
2,
{ "name": ["console", "*"], "message": "Please use our logger" }
]
}
}
```
# Todo
- [ ] Possibility to add `error`and `warning` at same time
# Contributing
Please feel free to submit, comment anything on this repo :)