Coder Social home page Coder Social logo

awesome-eslint's Introduction

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.
  • 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.

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.
  • 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 - 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.
  • 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-eslint-parser - @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.
  • 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-docgen - Automatically generate ESLint plugin documentation from rule metadata and test cases.

Tutorials

Installation and Setup

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

awesome-eslint's People

Contributors

aladdin-add avatar amilajack avatar amwmedia avatar ashinzekene avatar brettz9 avatar darkred avatar davidjbradshaw avatar dependabot[bot] avatar dotansimha avatar dustinspecker avatar edg2s avatar fengzilong avatar gajus avatar igorshubovych avatar jfmengels avatar jorgegonzalez avatar joshuakgoldberg avatar kantord avatar mysticatea avatar nickdeis avatar ntwb avatar ota-meshi avatar rebeccastevens avatar robatwilliams avatar sadorlovsky avatar sargalias avatar sebastienelet avatar stuartfeldt avatar thibautre avatar turbo87 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-eslint's Issues

RFC: eslint-docs

eslint-docs is a tool created by me that makes maintaining ESLint plugins easier. It ensures that the names and descriptions of a plugin’s rules are consistent in the rule source, the documentation, and the README. Is this worth including in this awesome list?

Meteor

The current repository is deprecated.

how to know if a plugin is useful ?

Hi,

I often use recursion (nested JSON object coming the backend) and this plugin no-inferred-method-name caught a few errors that would have taken me some times to figure out.

This is quite useful to me but I wonder if it has its place and if it is where to put it?

How to use this package?

Looks good, It would be good if provided with usage details, looking forward for hearing back

Split Configs into 2 Sections

Going forward it would be great to have the existing Configs section split into 2 sections named Configs by Companies and Configs by Developers (or something along these lines).

This lets folks know what configs are supported by a company versus a single developer, while still enabling configs by single developers to be discovered via this list. It also makes it easy to accept config Pull Requests for an individual's personal config.

Babel

The current repository is deprecated.

improve linting results step-by-step

Hi

Thanks a lot for this list.
I ran out of options. I need some tool to allow me to compare linting errors and warnings on current working branch with some code baseline, not to allow new (more) errors/warnings than it was before. I used to have such a tool configured for TravisCI long time ago, but I'm not able to reverse-engineer that solution. Do you have any ideas? Maybe I just didn't found good google search phrase?

Regards

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.