Git Product home page Git Product logo

eslint-plugin-github's Introduction

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.

By default, these eslint rules will check the "as" prop for underlying element changes. If your repo uses a different prop name for polymorphic components provide the prop name in your eslintrc configuration under polymorphicPropName.

{
  "settings": {
    "github": {
      "polymorphicPropName": "asChild",
      "components": {
        "Box": "p",
        "Link": "a"
      }
    }
  }
}

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='button'> will be treated as a button element type.

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.

NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  Description πŸ’Ό πŸ”§ ❌
a11y-aria-label-is-well-formatted [aria-label] text should be formatted as you would visual text. βš›οΈ
a11y-no-generic-link-text disallow generic link text ❌
a11y-no-title-attribute Guards against developers using the title attribute βš›οΈ
a11y-no-visually-hidden-interactive-element Ensures that interactive elements are not visually hidden βš›οΈ
a11y-role-supports-aria-props Enforce that elements with explicit or implicit roles defined contain only aria-* properties supported by that role. βš›οΈ
a11y-svg-has-accessible-name SVGs must have an accessible name βš›οΈ
array-foreach enforce for..of loops over Array.forEach βœ…
async-currenttarget disallow event.currentTarget calls inside of async functions πŸ”
async-preventdefault disallow event.preventDefault calls inside of async functions πŸ”
authenticity-token disallow usage of CSRF tokens in JavaScript πŸ”
get-attribute disallow wrong usage of attribute names πŸ” πŸ”§
js-class-name enforce a naming convention for js- prefixed classes πŸ”
no-blur disallow usage of Element.prototype.blur() πŸ”
no-d-none disallow usage the d-none CSS class πŸ”
no-dataset enforce usage of Element.prototype.getAttribute instead of Element.prototype.datalist πŸ”
no-dynamic-script-tag disallow creating dynamic script tags βœ…
no-implicit-buggy-globals disallow implicit global variables βœ…
no-inner-html disallow Element.prototype.innerHTML in favor of Element.prototype.textContent πŸ”
no-innerText disallow Element.prototype.innerText in favor of Element.prototype.textContent πŸ” πŸ”§
no-then enforce using async/await syntax over Promises βœ…
no-useless-passive disallow marking a event handler as passive when it has no effect πŸ” πŸ”§
prefer-observers disallow poorly performing event listeners πŸ”
require-passive-events enforce marking high frequency event handlers as passive πŸ”
unescaped-html-literal disallow unescaped HTML literals πŸ”

eslint-plugin-github's People

Contributors

koddsson avatar josh avatar dependabot[bot] avatar khiga8 avatar keithamus avatar manuelpuyol avatar srt32 avatar jfuchs avatar theinterned avatar kendallgassner avatar muan avatar lindseywild avatar smockle avatar shawnbot avatar nschonni avatar maximdevoir avatar nakajima avatar erinnachen avatar pablonete avatar dgreif avatar nnmrts avatar andykenward avatar boris-petrov avatar shiftkey avatar camchenry avatar iansan5653 avatar stephenotalora avatar rotelloj avatar yuya-takeyama avatar galkin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.