Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/remithomas/eslint-plugin-ban

Ban some methods and functions
https://github.com/remithomas/eslint-plugin-ban

eslint eslint-plugin

Last synced: 4 days ago
JSON representation

Ban some methods and functions

Awesome Lists containing this project

README

        

# eslint-plugin-ban [![Build Status](https://travis-ci.org/remithomas/eslint-plugin-ban.svg?branch=master)](https://travis-ci.org/remithomas/eslint-plugin-ban) [![npm version](https://img.shields.io/npm/v/eslint-plugin-ban.svg?style=flat-square)](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 :)