Skip to content

Correia-jpv/fucking-awesome-eslint

Repository files navigation

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

  • 142429⭐  26215🍴 Airbnb) - Shareable config for 142429⭐  26215🍴 Airbnb's style guide).
  •      3⭐      2🍴 Airbnb-babel) - Airbnb's ESLint config with Babel Support.
  •   1027⭐     87🍴 Airbnb-typescript) - Airbnb's ESLint config with TypeScript support.
  •   2632⭐    320🍴 Alloy) - Progressive ESLint config for your React/Vue/TypeScript projects.
  •  24402⭐   4412🍴 ESLint) - Contains the ESLint configuration used for projects maintained by the ESLint team.
  • 🌎 Facebook - Sharable config for Facebook's style guide.
  •      9⭐      3🍴 Feedzai) - Feedzai's shareable config for JavaScript/React projects.
  • 102002⭐  26618🍴 React App) - Sharable config for 🌎 React projects.
  •    459⭐     55🍴 Shopify) - Shareable config for    253⭐     38🍴 Shopify's style guide).
  •   1137⭐     28🍴 Vercel) - Vercel Engineering's composable eslint configuration used in all their codebases.
  •     28⭐     19🍴 Wikimedia) - Shareable config for 🌎 Wikimedia's style guide, used by 🌎 MediaWiki.

Other Prominent Configs (100 stars or so)

  •    395⭐     13🍴 Auto) - Automatically configure ESLint based on your project's dependencies.
  •    569⭐     30🍴 Canonical) - Shareable config for     18⭐      5🍴 Canonical style guide).
  •   2575⭐    568🍴 Standard) - Shareable config for JavaScript  28904⭐   2319🍴 Standard Style).
  •    264⭐     42🍴 XO) - Shareable config for   7558⭐    285🍴 XO).

Other Configs

  •     49⭐      8🍴 Adjunct) - A reasonable collection of plugins to use alongside your main ESLint configuration.
  •      6⭐      1🍴 Ash-Nazg) - One config to rule them all!
  •      6⭐      0🍴 Cecilia) - ESLint configuration for awesome projects.
  •      1⭐      0🍴 clean-typescript) - Enforce classic JavaScript featuress in TypeScript codebase by banning excessive keywords.
  •     28⭐      5🍴 ES) - Shareable config for very strict code.
  •    384⭐     13🍴 Hardcore) - The most strict (but practical) ESLint config out there.
  •     67⭐      3🍴 Problems) - Shareable config that only catches actual problems, and doesn't enforce stylistic preferences.
  •      4⭐      1🍴 Supermind) - Shareable config for Supermind style.
  •     90⭐      5🍴 Sheriff) - Comprehensive and highly opinionated Eslint configuration. Typescript oriented.

Preconfigured Configs with ESLint Set up

  •      6⭐      1🍴 Node.js Standard Style) - Node.js core config.
  •   5263⭐    252🍴 eslint-config-prettier) - Prettier config for ESlint maintained by Prettier team
  •  28904⭐   2319🍴 Standard) - JavaScript Standard Style.
  •      5⭐      0🍴 Superlint) - JavaScript Supermind Style.
  •   7558⭐    285🍴 XO) - JavaScript happiness style linter ❤️.
  •     83⭐      6🍴 Healthier) - Code style agnostic version of Standard, perfect companion to Prettier.

Plugins

Code Quality

  •    280⭐     51🍴 GitHub) - Misc. rules from GitHub.
  •   1159⭐     72🍴 SonarJS) - Rules detecting bugs and suspicious patterns.
  •   3910⭐    352🍴 Unicorn) - Various awesome ESLint rules.
  •     25⭐     10🍴 @mysticatea/eslint-plugin) - Misc. rules.
  •      2⭐      0🍴 @brettz9/eslint-plugin) - Misc. rules. of @mysticatea without the personal config.

Compatibility

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

CSS in JS

  •    151⭐     34🍴 CSS-modules) - Lint undefined or unused rules for css modules.
  •  17232⭐   1093🍴 Emotion) - ESLint rules for emotion.
  • Styled Components

Deprecation

  •     78⭐     11🍴 deprecate) - Mark functions or modules as deprecated and get lint messages when they are used.
  •    295⭐     35🍴 deprecation) - Identifies use of jsdoc @deprecated functions.
  •     57⭐      3🍴 disable) - Disable specified plugins using file path patterns and inline comments.

Embedded

  •    424⭐     51🍴 HTML) - Linting for JavaScript inside of HTML <script> tags.
  •    363⭐     58🍴 Markdown) - Linting for JavaScript inside of Markdown.

Frameworks

  •   1569⭐    209🍴 Angular) - Linting rules for Angular (v2+).
  •    618⭐    131🍴 AngularJS) - Linting rules to adhere to the  23898⭐   4160🍴 John Papa's AngularJS Styleguide).
  •    271⭐     20🍴 Astro) - Plugin for 🌎 Astro components.
  •     95⭐     11🍴 Backbone) - Linting rules for Backbone.
  •     55⭐     12🍴 Custom Elements) - Rules by GitHub for Custom Elements.
  •    256⭐    197🍴 Ember) - Linting rules for Ember.
  •     21⭐     10🍴 Hapi) - Linting rules for hapi.
  •  44075⭐   5162🍴 Meteor) - Meteor specific linting rules for ESLint.
  • React
    •     22⭐      3🍴 JSX a11y) - Accessibility rules on JSX elements.
    •   8835⭐   2753🍴 React) - Linting rules for React and JSX.
    • 223467⭐  45510🍴 React Hooks) - Linting rules for React Hooks.
    •    710⭐    128🍴 React Native) - React Native specific linting rules.
    •     82⭐     17🍴 React-Redux) - React-Redux specific linting rules.
  •    200⭐     23🍴 Solid) - Linting rules for Solid and JSX.
  •    266⭐     26🍴 Svelte) - Linting rules for Svelte v3 Components.
  • Vue
    •   4379⭐    647🍴 VueJS) - Plugin for VueJS.
    •     93⭐      9🍴 VueJS Scoped CSS) - Plugin for Scoped CSS in VueJS.

Languages and Environments

  • 🌎 AssemblyScript - Rules for enforcing restrictions on TypeScript toward AssemblyScript compliance.
  •  42966⭐   5587🍴 Babel) - Adds replacements for built-in rules to include Babel features.
  •     11⭐      0🍴 Coffee) - Enables linting CoffeeScript files with, with optional linting rules from the Coffeelint library.
  •    185⭐     26🍴 eslint-plugin-eslint-plugin) - An ESLint plugin for linting ESLint plugins.
  • Flow
    •   1078⭐    153🍴 Flow) - Flow type linting rules.
    •    402⭐     32🍴 Flow Errors) - Run Flow as an ESLint plugin.
  •    143⭐     26🍴 HTML) - ESLint plugin for HTML.
  • JSON
    •    193⭐     27🍴 JSON) - Lint your JSON files.
    •     41⭐      3🍴 JSON, package.json) - Lint, format, and auto-fix your JSON files. Sort your package.json.
    •    173⭐     13🍴 JSON with Comments) - ESLint plugin for JSON, JSONC and JSON5.
    •     64⭐      4🍴 JSON Schema) - Validates data defined in JavaScript, JSON, YAML and TOML using JSON Schema Validator.
  •    254⭐     29🍴 MDX) - ESLint Parser/Plugin for MDX.
  •    956⭐    162🍴 Node) - Additional ESLint's rules for Node.js.
  •     91⭐     23🍴 SQL) - SQL linting rules for ESLint.
  •     25⭐      2🍴 TOML) - ESLint plugin for TOML.
  •  14681⭐   2651🍴 TypeScript) - Linting rules for TypeScript.
  •    105⭐     10🍴 YAML) - ESLint plugin for YAML.

Libraries

  • GraphQL
  •     17⭐      3🍴 TypeGraphQL) - Linting rules for TypeGraphQL, targeted at finding common mistakes.
  •     31⭐      8🍴 jQuery) - Linting rules for jQuery, including versioned configs for deprecated features.
  •   1058⭐    153🍴 JSDoc) - Linting rules for JSDoc comments (including the JavaScript within @example).
  • Lodash
    •    271⭐     65🍴 Lodash) - Lodash specific linting rules.
    •    149⭐     29🍴 Lodash/fp) - Lodash/fp specific linting rules.
    •     17⭐      2🍴 Lodash template) - Plugin for Lodash template/Underscore template.
    •      4⭐      2🍴 Microtemplates) (Used in Lodash and Underscore.js)
  •     17⭐      3🍴 Mongodb) - Mongodb native Node.js driver linting rules.
  •    118⭐     11🍴 Ramda) - Ramda specific linting rules.
  •     29⭐     16🍴 RequireJS) - Linting rules for RequireJS.
  •   1319⭐     62🍴 Tailwind CSS) - Linting rules for Tailwind CSS classnames.

Misc

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

Practices and Specific ES Features

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

Performance

  •      9⭐      0🍴 DOM)
  •     73⭐      9🍴 Optimize Regex) - Optimize regex literals.
  • Perf-Standard     22⭐      3🍴 plugin) and      3⭐      0🍴 Config)

Security

  •    123⭐      4🍴 no-secrets) - An eslint plugin that detects potential secrets/credentials.
  •    217⭐     33🍴 no-unsanitized) - Checks for innerHTML, outerHTML, etc.
  •      7⭐      0🍴 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     88⭐     11🍴 config) and     28⭐      6🍴 plugin) - Security-related rules.
  •   2147⭐    107🍴 Security) - ESLint rules for Node Security.
  •     67⭐     16🍴 xss) - Tries to detect XSS issues in codebase before they end up in production.

Style

  • 🌎 const case - Enforce capitalization of constant primitive literals.
  •     13⭐      1🍴 editorconfig) - Derive rules from 🌎 .editorconfig.
  •    310⭐     34🍴 filenames) - Ensure consistent filenames for your JavaScript files.
  •   1922⭐     66🍴 Simple import sort) - Easy autofixable import sorting.
  •   1630⭐     30🍴 perfectionist sorting) - Sort objects, imports, TypeScript types, enums, JSX props, etc.
  •     16⭐      1🍴 Switch case) - Switch-case-specific linting rules for ESLint.
  •      4⭐      1🍴 padding) - Allows/disallows padding between statements.
  •     38⭐      0🍴 paths) - Use paths from tsconfig/jsconfig and auto fix relative paths to aliases.

Testing Tools

Parsers

  •  42966⭐   5587🍴 babel-eslint-parser) - @babel/eslint-parser allows you to lint ALL valid Babel code with the fantastic ESLint.
  •  14681⭐   2651🍴 TypeScript) - A TypeScript parser that produces output compatible with ESLint.
  •     43⭐      8🍴 BrightScript) - BrightScript plugin for Roku development. Includes Parser and Rules.
  •    768⭐    100🍴 GraphQL) - Parser for the GraphQL AST. Includes parser, plugin, processor (for non-graphql files) and rules.

Formatters

  •     27⭐      4🍴 html) - A enhanced ESLint formatter
  •      6⭐      5🍴 badger) - Make SVG-based badges summarizing ESLint results (e.g., for use on a README).
  •     42⭐      0🍴 git-log) - ESLint Formatter featuring Git Author, Date, and Hash.
  •    100⭐      3🍴 github) - See ESLint errors and warnings directly in pull requests.
  • 🌎 gitlab - Output ESLint results in the GitLab code quality results.
  •    119⭐      0🍴 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.
  •     12⭐      3🍴 summary-chart) - Format ESLint output into a bar chart.

Globals

  • 102002⭐  26618🍴 confusing-browser-globals) - A curated list of browser globals that commonly cause confusion and are not recommended to use without an explicit window. qualifier.
  •    350⭐    109🍴 ES and browser globals) (originally from ESLint)
  •      2⭐      0🍴 chai globals)
  •     15⭐      8🍴 TestCafe globals) - fixture & test globals for TestCafe.

Tools

  •    343⭐     26🍴 eslint-define-config) - Provide a defineConfig function for .eslintrc.js files.
  •      2⭐      1🍴 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.
  •    201⭐     32🍴 eslint-find-rules) - Find built-in ESLint rules you don't have in your custom config.
  •     20⭐      4🍴 eslint-index) - CLI for finding and managing rules in ESLint config files.
  •    326⭐      8🍴 eslint-interactive) - The CLI tool to fix huge number of ESLint errors.
  •      7⭐      1🍴 eslint-multiplexer) - Multiplex eslint results and merge results for common files.
  •    755⭐     29🍴 eslint-nibble) - Ease into ESLint, by fixing one rule at a time.
  •     30⭐     31🍴 eslint-rule-documentation) - Find the url for the documentation of an ESLint rule.
  •    192⭐     30🍴 eslint-watch) - Run ESLint with watch mode.
  •     14⭐     18🍴 codacy-eslint) - Docker used at 🌎 Codacy to run ESLint.
  •    657⭐     54🍴 esprint) - Run ESLint across multiple threads.
  •    224⭐     50🍴 generator-eslint) - Generate ESLint plugin and rules with Yeoman.
  •      6⭐      1🍴 editor-info) - Detect whether one is within an editor/IDE and which type, allowing one to tweak ESLint configuration accordingly.
  •     20⭐      1🍴 eslint-dashboard) - Interactive ESLint workflow that lives in your terminal.
  •    118⭐     10🍴 eslint-remote-tester) - CLI tool for testing given ESlint rules against multiple repositories at once.

Developing for ESLint

  •     90⭐      4🍴 eslint-doc-generator) - Generate documentation for your ESLint plugin including a rules table for your readme and header for your rule docs.
  •      9⭐      7🍴 eslint-docgen) - Automatically generate ESLint plugin documentation from rule metadata and test cases.

Tutorials

Installation and Setup

  •     17⭐      1🍴 Lintier) - CLI to quickly scaffold an ESLint & Prettier setup in a TypeScript project.

Source

  4151⭐    229🍴 dustinspecker/awesome-eslint)