Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eslint-config-auto

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-config-auto

Automatically configure esLint based on project dependancies

  • 0.6.6
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.8K
increased by22.4%
Maintainers
1
Weekly downloads
 
Created
Source

eslint-config-auto

NPM version License: MIT Donate

Automatically configure ESLint based on project dependencies

This config will automatically configure the airbnb esLint rules and a range of other plugins, based on the contents of your projects package.json file.

Install

To install this config, run the following command.

npm install eslint-config-auto --save-dev

Configure

Create an .eslintrc file with the following contents.

{
  "extends": ["auto"]
}

You can now include html, json and markdown in the list of files passed to eslint to lint any JavaScript contained.

{
  "scripts": {
    "eslint": "eslint --color --ext .html,.js,.json,.jsx,.md,.ts,.tsx *.* src",
    "eslint:fix": "npm run eslint -- --fix"
  }
}

Install Dependencies

After you have configured eslint to include this package, the first time you run eslint it will output the npm command to install the dependencies required for your project. Copy and paste this command into the console, and you are then ready to start linting.

Rules

AirBNB

The most appropreate version of the AirBNB eslint config will be automatically selected.

Babel

If the project includes Babel in it's devDependcies, then eslint-plugin-babel and eslint-config-airbnb-babel will be loaded and the parser will be set to babel-eslint.

Some project setup utils, such as Create React App, use Babel without including it as a project dependancies. In such cases you can turn Babel support on by adding settings: { babel: true } to your .eslintrc config file.

Code Quality

These two plugins provide a range of code quality rules:

Compat

If settings.compat = true in your .eslintrc, then eslint-plugin-compat is loaded.

Langauges

The following plugins expand esLint to support TypeScript, JSON, and lint code contiained in HTML and MarkDown files:

If the project includes TypeScript, then the rules will adapt to lint typescript files and the parser will be set to @typescript-eslint/parser for ts and tsx filetypes.

When linting code snippets in Markdown files, a few rules relating to globals and unused vars are disabled.

Library Plugins

These plugins will be loaded in based on your project dependencies in package.json. If a supported library is part of your project then it's related esLint plugins will be loaded. The following packages are supported:

Node

If env.node = true in your .eslintrc file, then eslint-plugin-node is loaded.

React

If a project contians React, then a React version of the AirBNB config will be used and if Redux is installed the following extra plugins will be loaded.

Practices

The following esLint plugins enforce good coding practices:

Prettier

If prettier is installed, any rules that may conflict with Prettier will be disabled. The plugin should read you Prettier config from your project's root.

The prettier configs for different eslint plugins are also automatically included based on which eslint plugins have been installed into your project.

Security

These plugins add code security rules to esLint:

Test Libraries

Test plugins are loaded based on which testing tools you have listed in devDependencies of package.json. The following test plugins are supported:

For test files a few rules are turned off, to better to support normal unit test coding styles.

Rules

In the most part the default rules are used for the plugins listed above, with the following exceptions.

Switch-Case

Adds the fallthrough: 'never' option to the newline-between-switch-case rule.

// Good

switch (foo) {
  case 1:
    something()
    break

  case 2:
  case 3:
    somethingElse()
    break

  default:
    defaultThing()
}

Disabled rules

The following rules are disabled due to them being considered unduly restrictive or unhelpful.

  • jest/no-disabled-tests
  • react-redux/prefer-separate-component-file
  • redux-saga/no-unhandled-errors
  • lodash/prefer over native rules
  • lodash-fp/use-fp
  • unicorn/no-fn-reference-in-iterator
  • unicorn/no-array-for-each
  • unicorn/no-reduce
  • unicorn/no-null
  • unicorn/prefer-number-properties
  • unicorn/prefer-optional-catch-binding
  • unicorn/prevent-abbreviations

The following rules are disabled due to clashing with other plugins

  • array-func/prefer-array-from
  • import/order
  • sort-imports

License

Copyright © 2020 David J. Bradshaw. Licensed under the MIT License.

Keywords

FAQs

Package last updated on 06 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc