An open API service indexing awesome lists of open source software.

fucking-awesome-eslint

A list of awesome ESLint plugins, configs, etc. With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-eslint

Last synced: 2 days ago
JSON representation

  • Configs

    • Configs by Well-Known Companies/Organizations

      • Airbnb-babel - Airbnb's ESLint config with Babel Support.
      • Airbnb-typescript - Airbnb's ESLint config with TypeScript support.
      • Alloy - Progressive ESLint config for your React/Vue/TypeScript projects.
      • Airbnb - Shareable config for <b><code>146529⭐</code></b> <b><code>&nbsp;26737🍴</code></b> [Airbnb's style guide](https://github.com/airbnb/javascript)).
      • Airbnb-babel - Airbnb's ESLint config with Babel Support.
      • Airbnb-typescript - Airbnb's ESLint config with TypeScript support.
      • Alloy - Progressive ESLint config for your React/Vue/TypeScript projects.
      • Feedzai - Feedzai's shareable config for JavaScript/React projects.
      • React App - Sharable config for 🌎 [React](reactjs.org) projects.
      • Shopify - Shareable config for <b><code>&nbsp;&nbsp;&nbsp;256⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;38🍴</code></b> [Shopify's style guide](https://github.com/Shopify/javascript)).
      • Vercel - Vercel Engineering's composable eslint configuration used in all their codebases.
      • Wikimedia - Shareable config for 🌎 [Wikimedia's style guide](www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript), used by 🌎 [MediaWiki](www.mediawiki.org/).
      • Feedzai - Feedzai's shareable config for JavaScript/React projects.
      • React App - Sharable config for 🌎 [React](reactjs.org) projects.
      • Shopify - Shareable config for <b><code>&nbsp;&nbsp;&nbsp;256⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;38🍴</code></b> [Shopify's style guide](https://github.com/Shopify/javascript)).
      • Vercel - Vercel Engineering's composable eslint configuration used in all their codebases.
      • Wikimedia - Shareable config for 🌎 [Wikimedia's style guide](www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript), used by 🌎 [MediaWiki](www.mediawiki.org/).
    • Other Prominent Configs (100 stars or so)

      • Auto - Automatically configure ESLint based on your project's dependencies.
      • Canonical - Shareable config for <b><code>&nbsp;&nbsp;&nbsp;&nbsp;18⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5🍴</code></b> [Canonical style guide](https://github.com/gajus/canonical)).
      • Standard - Shareable config for JavaScript <b><code>&nbsp;29306⭐</code></b> <b><code>&nbsp;&nbsp;2319🍴</code></b> [Standard Style](https://github.com/feross/standard)).
      • XO - Shareable config for <b><code>&nbsp;&nbsp;7762⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;290🍴</code></b> [XO](https://github.com/xojs/xo)).
      • Antfu Eslint Config - Anthony's ESLint config preset.
      • Auto - Automatically configure ESLint based on your project's dependencies.
      • Canonical - Shareable config for <b><code>&nbsp;&nbsp;&nbsp;&nbsp;18⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5🍴</code></b> [Canonical style guide](https://github.com/gajus/canonical)).
      • Standard - Shareable config for JavaScript <b><code>&nbsp;29306⭐</code></b> <b><code>&nbsp;&nbsp;2319🍴</code></b> [Standard Style](https://github.com/feross/standard)).
      • XO - Shareable config for <b><code>&nbsp;&nbsp;7762⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;290🍴</code></b> [XO](https://github.com/xojs/xo)).
      • Antfu Eslint Config - Anthony's ESLint config preset.
    • 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.
      • Supermind - Shareable config for Supermind style.
      • clean-typescript - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.
      • 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.
      • Sheriff - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.
      • Adjunct - A reasonable collection of plugins to use alongside your main ESLint configuration.
      • Ash-Nazg - One config to rule them all!
      • clean-typescript - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.
      • 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.
      • Sheriff - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.
  • Plugins

    • Libraries

      • apollostack/eslint-plugin-graphql - Check your GraphQL query strings against a schema.
      • 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 - Lodash specific linting rules.
      • Lodash/fp - Lodash/fp specific linting rules.
      • Lodash template - Plugin for Lodash template/Underscore template.
      • Ramda - Ramda specific linting rules.
      • RequireJS - Linting rules for RequireJS.
      • apollostack/eslint-plugin-graphql - Check your GraphQL query strings against a schema.
      • 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 - Lodash specific linting rules.
      • Lodash/fp - Lodash/fp specific linting rules.
      • Lodash template - Plugin for Lodash template/Underscore template.
      • Microtemplates
      • 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 <b><code>&nbsp;&nbsp;&nbsp;741⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;40🍴</code></b> [putout](https://github.com/coderaiser/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.
      • 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 <b><code>&nbsp;&nbsp;&nbsp;741⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;40🍴</code></b> [putout](https://github.com/coderaiser/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.
      • boundaries - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.
      • @eslint-community/eslint-plugin-eslint-comments - Best practices about ESLint directive comments (`/*eslint-disable*/`, etc.). Properly maintained fork of no longer maintained `eslint-plugin-eslint-comments`.
      • 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.
      • eslint-plugin-exception-handling - Lints unhandled functions that might throw errors.
      • no-restricted-syntax - Show queried syntax's content in messages.
      • no-use-extend-native - Prevent using extended native objects.
      • array-func - Avoid redundancy when using es2015 array methods and functions.
      • arrow functions - ESLint rules to ensure proper arrow function definitions.
      • boundaries - Ensures that your architecture boundaries are respected by the elements in your project checking file structure and dependencies.
      • @eslint-community/eslint-plugin-eslint-comments - Best practices about ESLint directive comments (`/*eslint-disable*/`, etc.). Properly maintained fork of no longer maintained `eslint-plugin-eslint-comments`.
      • eslint-plugin-hexagonal-architecture - A plugin that helps you to enforce hexagonal architecture best practices.
      • eslint-plugin-exception-handling - Lints unhandled functions that might throw errors.
      • 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.
      • import-x - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Lightweight fork of `eslint-plugin-import`, but which breaks backwards compatibility.
      • 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.
      • Promise - Best practices when working with promises.
      • pure - Enforce pure functions (without side effects).
      • ReDoSDetector - ESLint plugin for finding possible ReDoS vulnerabilities.
      • 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.
      • 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.
      • import-x - Linting of ES2015+ import/export syntax, and prevent issues with misspelling of file paths and import names. Lightweight fork of `eslint-plugin-import`, but which breaks backwards compatibility.
      • 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).
      • ReDoSDetector - ESLint plugin for finding possible ReDoS vulnerabilities.
      • 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.
    • Code Quality

    • Compatibility

      • Compat - Lint browser compatibility of APIs used ([caniuse](http://caniuse.com/#search=fetch) as an ESLint plugin).
      • ecmascript-compat - Disable ECMAScript language features not supported by your browserslist targets.
      • es-x - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintained `eslint-plugin-es`.
      • es5 - ESLint plugin for ES5 users (forbid ES2015+ usage).
      • ie11 - Detect unsupported ES6 features in IE11.
      • Compat - Lint browser compatibility of APIs used ([caniuse](http://caniuse.com/#search=fetch) as an ESLint plugin).
      • ecmascript-compat - Disable ECMAScript language features not supported by your browserslist targets.
      • es-x - Disable specific ECMAScript language versions or individual features. Properly maintained fork of no longer maintained `eslint-plugin-es`.
      • 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
      • disable - Disable specified plugins using file path patterns and inline comments.
      • deprecate - Mark functions or modules as deprecated and get lint messages when they are used.
      • deprecation - Identifies use of
      • 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.
      • HTML - Linting for JavaScript inside of HTML `<script>` tags.
      • Markdown - Linting for JavaScript inside of Markdown.
    • Frameworks

      • Angular - Linting rules for Angular (v2+).
      • AngularJS - Linting rules to adhere to the <b><code>&nbsp;23830⭐</code></b> <b><code>&nbsp;&nbsp;4137🍴</code></b> [John Papa's AngularJS Styleguide](https://github.com/johnpapa/angular-styleguide)).
      • Astro - Plugin for 🌎 [Astro components](docs.astro.build/en/core-concepts/astro-components/).
      • Backbone - Linting rules for Backbone.
      • Custom Elements - Rules by GitHub for Custom Elements.
      • Ember - Linting rules for Ember.
      • Hapi - Linting rules for hapi.
      • Meteor - Meteor specific linting rules for ESLint.
      • React - Linting rules for React and JSX.
      • React Hooks - Linting rules for React Hooks.
      • React Native - React Native specific linting rules.
      • React-Redux - React-Redux specific linting rules.
      • Solid - Linting rules for Solid and JSX.
      • Svelte - Linting rules for Svelte v3 Components.
      • VueJS - Plugin for VueJS.
      • VueJS Scoped CSS - Plugin for Scoped CSS in VueJS.
      • Angular - Linting rules for Angular (v2+).
      • AngularJS - Linting rules to adhere to the <b><code>&nbsp;23830⭐</code></b> <b><code>&nbsp;&nbsp;4137🍴</code></b> [John Papa's AngularJS Styleguide](https://github.com/johnpapa/angular-styleguide)).
      • Astro - Plugin for 🌎 [Astro components](docs.astro.build/en/core-concepts/astro-components/).
      • Backbone - Linting rules for Backbone.
      • Custom Elements - Rules by GitHub for Custom Elements.
      • Ember - Linting rules for Ember.
      • Hapi - Linting rules for hapi.
      • Meteor - Meteor specific linting rules for ESLint.
      • React - Linting rules for React and JSX.
      • React Hooks - Linting rules for React Hooks.
      • React Native - React Native specific linting rules.
      • React-Redux - React-Redux specific linting rules.
      • Solid - Linting rules for Solid and JSX.
      • Svelte - Linting rules for Svelte v3 Components.
      • VueJS - Plugin for VueJS.
      • VueJS Scoped CSS - Plugin for Scoped CSS in VueJS.
    • Languages and Environments

      • Babel - Adds replacements for built-in rules to include Babel features.
      • Coffee - Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.
      • Babel - Adds replacements for built-in rules to include Babel features.
      • Coffee - Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.
      • eslint-plugin-eslint-plugin - An ESLint plugin for linting ESLint plugins.
      • Flow - Flow type linting rules.
      • Flow Errors - Run Flow as an ESLint plugin.
      • HTML - ESLint plugin for HTML.
      • JSON - Lint your JSON files.
      • eslint-plugin-eslint-plugin - An ESLint plugin for linting ESLint plugins.
      • Flow - Flow type linting rules.
      • Flow Errors - Run Flow as an ESLint plugin.
      • HTML - ESLint plugin for HTML.
      • 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.
      • N - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintained `eslint-plugin-node`.
      • SQL - SQL linting rules for ESLint.
      • TOML - ESLint plugin for TOML.
      • TypeScript - Linting rules for TypeScript.
      • 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.
      • N - Additional ESLint's rules for Node.js. Properly maintained fork of no longer maintained `eslint-plugin-node`.
      • SQL - SQL linting rules for ESLint.
      • TOML - ESLint plugin for TOML.
      • TypeScript - Linting rules for TypeScript.
      • YAML - ESLint plugin for YAML.
    • 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.
      • config - plugin-scanjs-rules)) - Security-related rules.
      • 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.
      • config - plugin-scanjs-rules)) - Security-related rules.
      • Security - ESLint rules for Node Security.
      • xss - Tries to detect XSS issues in codebase before they end up in production.
      • Security - ESLint rules for Node Security.
      • xss - Tries to detect XSS issues in codebase before they end up in production.
    • Style

      • editorconfig - Derive rules from 🌎 [`.editorconfig`](editorconfig.org/).
      • filenames - Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all.
      • Simple import sort - Easy autofixable import sorting.
      • perfectionist sorting - Sort objects, imports, TypeScript types, enums, JSX props, etc.
      • Switch case - Switch-case-specific linting rules for ESLint.
      • padding - Allows/disallows padding between statements.
      • paths - Use paths from tsconfig/jsconfig and auto fix relative paths to aliases.
      • editorconfig - Derive rules from 🌎 [`.editorconfig`](editorconfig.org/).
      • filenames - Ensure consistent filenames for your JavaScript files. No longer maintained and does not work with ESlint 9 at all.
      • Simple import sort - Easy autofixable import sorting.
      • perfectionist sorting - Sort objects, imports, TypeScript types, enums, JSX props, etc.
      • Switch case - Switch-case-specific linting rules for ESLint.
      • padding - Allows/disallows padding between statements.
      • paths - Use paths from tsconfig/jsconfig and auto fix relative paths to aliases.
    • Testing Tools

  • Preconfigured Configs with ESLint Set up

  • Parsers

    • Testing Tools

      • babel-eslint-parser - Allows you to lint ALL valid Babel code with the fantastic ESLint.
      • TypeScript - A TypeScript parser that produces output compatible with ESLint.
      • BrightScript - BrightScript plugin for Roku development. Includes Parser and Rules.
      • babel-eslint-parser - Allows you to lint ALL valid Babel code with the fantastic ESLint.
      • TypeScript - A TypeScript parser that produces output compatible with ESLint.
      • BrightScript - BrightScript plugin for Roku development. Includes Parser and Rules.
  • Formatters

    • Testing Tools

      • 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.
      • mo - Good-lookin' ESLint formatter and also for delightful reading experience.
      • summary-chart - Format ESLint output into a bar chart.
      • 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.
      • mo - Good-lookin' ESLint formatter and also for delightful reading experience.
      • summary-chart - Format ESLint output into a bar chart.
  • Globals

  • Tools

    • Testing 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-plugin-rule-adoption - An eslint plugin for incremental rule adoption, when `--fix` and codemods don't cut it.
      • eslint-rule-documentation - Find the url for the documentation of an ESLint rule.
      • 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-plugin-rule-adoption - An eslint plugin for incremental rule adoption, when `--fix` and codemods don't cut it.
      • 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](www.codacy.com) to run ESLint.
      • esprint - Run ESLint across multiple threads.
      • generator-eslint - Generate ESLint
      • eslint-watch - Run ESLint with watch mode.
      • codacy-eslint - Docker used at 🌎 [Codacy](www.codacy.com) to run ESLint.
      • esprint - Run ESLint across multiple threads.
      • generator-eslint - Generate ESLint