eslint-plugin-ban

2.0.0 • Public • Published

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 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.

import pluginBan from 'eslint-plugin-ban';

Then use plugin and configure the rules you want to use.

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:

{
  "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

  • [ ] Possibility to add errorand warning at same time

Contributing

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

Package Sidebar

Install

npm i eslint-plugin-ban

Weekly Downloads

104,371

Version

2.0.0

License

ISC

Unpacked Size

21 kB

Total Files

12

Last publish

Collaborators

  • remithomas