Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/remithomas/eslint-plugin-ban
- Owner: remithomas
- License: isc
- Created: 2018-07-09T21:16:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-12T02:35:47.000Z (16 days ago)
- Last Synced: 2024-12-12T03:25:25.003Z (16 days ago)
- Topics: eslint, eslint-plugin
- Language: JavaScript
- Homepage:
- Size: 273 KB
- Stars: 31
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
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 :)