Skip to content

dustinspecker/awesome-eslint

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.

Awesome ESLint Awesome

eslint

A list of awesome ESLint configs, plugins, etc.

If you want to contribute, please read the contribution guidelines.

Contents

Configs

Configs by Well-Known Companies/Organizations

Other Prominent Configs (100 stars or so)

Other Configs

  • Adjunct - A reasonable collection of plugins to use alongside your main ESLint configuration.
  • Ash-Nazg - One config to rule them all!
  • Cecilia - ESLint configuration for awesome projects.
  • ES - Shareable config for very strict code.
  • Hardcore - The most strict (but practical) ESLint config out there.
  • Problems - Shareable config that only catches actual problems, and doesn't enforce stylistic preferences.
  • Supermind - Shareable config for Supermind style.

Preconfigured Configs with ESLint Set up

Plugins

Code Quality

Compatibility

  • Compat - Lint browser compatibility of APIs used (caniuse as an ESLint plugin).
  • ecmascript-compat - Disable ECMAScript language features not supported by your browserslist targets.
  • es - Disable specific ECMAScript language versions or individual features.
  • es5 - ESLint plugin for ES5 users (forbid ES2015+ usage).
  • ie11 - Detect unsupported ES6 features in IE11.

CSS in JS

Deprecation

  • deprecate - Mark functions or modules as deprecated and get lint messages when they are used.
  • deprecation - Identifies use of jsdoc @deprecated functions.
  • disable - Disable specified plugins using file path patterns and inline comments.

Embedded

  • HTML - Linting for JavaScript inside of HTML <script> tags.
  • Markdown - Linting for JavaScript inside of Markdown.

Frameworks

Languages and Environments

  • AssemblyScript - Rules for enforcing restrictions on TypeScript toward AssemblyScript compliance.
  • eslint-plugin-eslint-plugin - An ESLint plugin for linting ESLint plugins.
  • Coffee - Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.
  • Flow
    • Flow - Flow type linting rules.
    • Flow Errors - Run Flow as an ESLint plugin.
  • HTML - ESLint plugin for HTML.
  • JSON
    • JSON - Lint your JSON files.
    • JSON, package.json - Lint, format, and auto-fix your JSON files. Sort your package.json.
    • JSON with Comments - ESLint plugin for JSON, JSONC and JSON5.
    • JSON Schema - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
  • MDX - ESLint Parser/Plugin for MDX.
  • Node - Additional ESLint's rules for Node.js.
  • SQL - SQL linting rules for ESLint.
  • TOML - ESLint plugin for TOML.
  • TypeScript - Linting rules for TypeScript.
  • YAML - ESLint plugin for YAML.

Libraries

  • GraphQL
  • TypeGraphQL - Linting rules for TypeGraphQL, targeted at finding common mistakes.
  • jQuery - Linting rules for jQuery, including versioned configs for deprecated features.
  • JSDoc - Linting rules for JSDoc comments (including the JavaScript within @example).
  • Lodash
  • Mongodb - Mongodb native Node.js driver linting rules.
  • Ramda - Ramda specific linting rules.
  • RequireJS - Linting rules for RequireJS.
  • Tailwind CSS - Linting rules for Tailwind CSS classnames.

Misc

  • Diff - Run ESLint on your changed lines only. Also supports CI!
  • Misc - Miscellaneous rules including rules for creating custom checks and wrapping (modifying) third-party rules.
  • Notice - An eslint rule that checks the top of files and fixes them too!
  • Only-Error - Convert all rules to errors.
  • Only-Warn - Convert all rules to warnings.
  • PutOut - an ESLint plugin integrates putout linter into ESLint.
  • TypeLint - Introduces types, based on existing schemas (Swagger, Redux) and linting access to object properties, preventing undefined errors.
  • Woke - Helps catch insensitive words, promoting an inclusive codebase.

Practices and Specific ES Features

  • array-func - Avoid redundancy when using es2015 array methods and functions.
  • arrow functions - ESLint rules to ensure proper arrow function definitions.
  • Babel - Adds replacements for built-in rules to include Babel features.
  • boundaries - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.
  • ESLint Comments - Best practices about ESLint directive comments (/*eslint-disable*/, etc.).
  • eslint-plugin-hexagonal-architecture - A plugin that helps you to enforce hexagonal architecture best practices.
  • eslint-plugin-write-good-comments - Enforce good writing style in comments.
  • fp - ESLint rules for functional programming.
  • functional - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.
  • Immutable - Disable all mutation in JavaScript.
  • import - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names.
  • new-with-error - Require errors to be thrown using new.
  • no-argument-spread - Lints against expressions like Math.max(...args) that can lead to a stack overflow for large arrays.
  • no-comments - Prevents leaking comments into production if bundler is not used and stops developers from commenting out old lines of code.
  • no-constructor-bind - Encourages use of class properties by reporting use of this with bind or setting state in constructors.
  • no-inferred-method-name - Custom rule for ESLint that checks for inferred method names within object literals.
  • no-loops - It's 2019 and you still use loops?
  • no-restricted-syntax - Show queried syntax's content in messages.
  • no-use-extend-native - Prevent using extended native objects.
  • Promise - Best practices when working with promises.
  • pure - Enforce pure functions (without side effects).
  • RegExp - ESLint plugin for finding regexp mistakes and style guide violations.
  • sort-keys-fix - Adds fixer for ESLint sort-keys rule.
  • this - Write pure functions, don't allow this.
  • toplevel - An eslint plugin for disallow side effect at module toplevel.

Performance

Security

  • no-secrets - An eslint plugin that detects potential secrets/credentials.
  • no-unsanitized - Checks for innerHTML, outerHTML, etc.
  • pii - Checks and enforces PII Compliance of the code. i.e. no email address, birth date, IP address or phone number in comments or string literals.
  • ScanJS config and plugin - Security-related rules.
  • Security - ESLint rules for Node Security.
  • xss - Tries to detect XSS issues in codebase before they end up in production.

Style

Testing Tools

Parsers

  • Babel - Use Babel's parser for linting all Babel features.
  • TypeScript - A TypeScript parser that produces output compatible with ESLint.
  • BrightScript - BrightScript plugin for Roku development. Includes Parser and Rules.
  • GraphQL - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.

Formatters

  • html - A enhanced ESLint formatter
  • badger - Make SVG-based badges summarizing ESLint results (e.g., for use on a README).
  • git-log - ESLint Formatter featuring Git Author, Date, and Hash.
  • github - See ESLint errors and warnings directly in pull requests.
  • gitlab - Output ESLint results in the GitLab code quality results.
  • mo - Good-lookin' ESLint formatter and also for delightful reading experience.
  • SARIF - Generate a results in a SARIF format so it can be imported into tools like GitHub Advanced Security.
  • summary-chart - Format ESLint output into a bar chart.

Globals

Tools

  • eslint-define-config - Provide a defineConfig function for .eslintrc.js files.
  • es-file-traverse - Obtain a list of only those files which are in use based on imports and/or requires from an entry file or files; list passable to ESLint. Intended esp. for linting 3rd party dependencies.
  • eslint-find-rules - Find built-in ESLint rules you don't have in your custom config.
  • eslint-index - CLI for finding and managing rules in ESLint config files.
  • eslint-interactive - The CLI tool to fix huge number of ESLint errors.
  • eslint-multiplexer - Multiplex eslint results and merge results for common files.
  • eslint-nibble - Ease into ESLint, by fixing one rule at a time.
  • eslint-rule-documentation - Find the url for the documentation of an ESLint rule.
  • eslint-watch - Run ESLint with watch mode.
  • codacy-eslint - Docker used at Codacy to run ESLint.
  • esprint - Run ESLint across multiple threads.
  • generator-eslint - Generate ESLint plugin and rules with Yeoman.
  • editor-info - Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly.
  • eslint-dashboard - Interactive ESLint workflow that lives in your terminal.
  • eslint-remote-tester - CLI tool for testing given ESlint rules against multiple repositories at once.

Developing for ESLint

  • eslint-doc-generator - Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs.
  • eslint-docs - Keep your rule descriptions up-to-date across the repository.

Tutorials

Installation and Setup

  • Lintier - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.

About

A list of awesome ESLint plugins, configs, etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published