eslint-plugin-github
Installation
npm install --save-dev eslint eslint-plugin-github
Setup
Add github
to your list of plugins in your ESLint config.
JSON ESLint config example:
{
"plugins": ["github"]
}
Extend the configs you wish to use.
JSON ESLint config example:
{
"extends": ["plugin:github/recommended"]
}
The available configs are:
internal
- Rules useful for github applications.
browser
- Useful rules when shipping your app to the browser.
react
- Recommended rules for React applications.
recommended
- Recommended rules for every application.
typescript
- Useful rules when writing TypeScript.
Component mapping (Experimental)
Note: This is experimental and subject to change.
The react
config includes rules which target specific HTML elements. You may provide a mapping of custom components to an HTML element in your eslintrc
configuration to increase linter coverage.
For each component, you may specify a default
and/or props
. default
may make sense if there's a 1:1 mapping between a component and an HTML element. However, if the HTML output of a component is dependent on a prop value, you can provide a mapping using the props
key. To minimize conflicts and complexity, this currently only supports the mapping of a single prop type.
{
"settings": {
"github": {
"components": {
"Box": {"default": "p"},
"Link": {"props": {"as": {"undefined": "a", "a": "a", "button": "button"}}}
}
}
}
}
This config will be interpreted in the following way:
- All
<Box>
elements will be treated as a p
element type. <Link>
without a defined as
prop will be treated as a a
.<Link as='a'>
will treated as an a
element type.<Link as='button'>
will be treated as a button
element type.<Link as='summary'>
will be treated as the raw Link
type because there is no configuration set for as='summary'
.
Rules
💼 Configurations enabled in.
🔍 Set in the browser
configuration.
🔐 Set in the internal
configuration.
⚛️ Set in the react
configuration.
✅ Set in the recommended
configuration.
🔧 Automatically fixable by the --fix
CLI option.
❌ Deprecated.