webhook/node_modules/eslint-plugin-github
2022-11-10 20:43:16 +10:00
..
bin Add node_modules until bundler is added 2020-08-26 09:57:08 +10:00
lib update modules 2022-11-10 20:43:16 +10:00
node_modules/.bin add ability to call self-signed or invalid certificate clients 2021-02-26 13:58:33 +10:00
LICENSE Add node_modules until bundler is added 2020-08-26 09:57:08 +10:00
package.json update modules 2022-11-10 20:43:16 +10:00
README.md update modules 2022-11-10 20:43:16 +10:00

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

Accessibility-focused rules (prefixed with a11y)