Skip to content

This is a plugin that puts the ESLint rules I have wanted into one place.

License

Notifications You must be signed in to change notification settings

typehut/eslint-plugin

Repository files navigation

@typehut/eslint-plugin

npm version Build Status Dependency Status

This is a plugin that puts the ESLint rules I have wanted into one place. It also contains rules for existing plug-ins with additional auto-fixer.

Installation

Use npm or a compatibility tool to install.

$ npm install --save-dev eslint @typehut/eslint-plugin

Requirements

  • Node.js v8.10.0 or newer versions.
  • ESLint v5.16.0 or newer versions.

Usage

Write your config file such as .eslintrc.yml.

plugins:
  - "@typehut"
rules:
  "@typehut/func-style":
    - error
    - arrow
    - topLevelStyle: declaration

See also Configuring ESLint.

Configs

  • @typehut/recommended ... enables the recommended rules.

Rules

Best Practices

Rule ID Description
@typehut/exports-last This rule enforces that all exports are declared at the bottom of the file. This rule will report any export declarations that comes before any non-export statements. ⭐️✒️
@typehut/group-exports Reports when named exports are not grouped together in a single export declaration or when multiple assignments to CommonJS module.exports or exports object are present in a single file ⭐️✒️
@typehut/jsx-a11y-anchor-has-content Enforce that anchors have content and that the content is accessible to screen readers
@typehut/jsx-a11y-control-has-associated-label Enforce that a control (an interactive element) has a text label
@typehut/typescript-react-component-type enforce FC and FunctionComponent types to one or the other ⭐️✒️
@typehut/typescript-react-require-props-suffix require that prop interface names be suffixed with Props ⭐️
@typehut/typescript-react-require-props-type require an props type to be provided to a React component ⭐️

Stylistic Issues

Rule ID Description
@typehut/func-style enforce consistent use of function declarations or expressions ⭐️✒️

Semantic Versioning Policy

This plugin follows Semantic Versioning and ESLint's Semantic Versioning Policy.

Changelog

Contributing

Welcome your contribution!

See also ESLint Contribution Guide.

Development Tools

  • npm test runs tests and measures coverage.
  • npm version <TYPE> updates the package version. And it updates lib/configs/recommended.js, lib/index.js, and README.md's rule table. See also npm version CLI command.
  • npm run add-rule <RULE_ID> creates three files to add a new rule.