@effective/eslint-config-factory
v0.2.4
Published
_Effective ESLint Factory_ is used to create an efficient flat ESLint config based on the established configs and plugins from Airbnb, Facebook, Sindre Sorhus and many more...
Downloads
20
Maintainers
Readme
@Effective / ESLint Factory
@Effective / ESLint Factory is used to create an efficient flat ESLint config (no extends at runtime) based on the established configs and plugins from Airbnb, Facebook (CRA, React, React Hooks), Sindre Sorhus (XO), Kent C Dodds, and many more... A configuration to bundle everything important of these presets in one preset. Based on TypeScript. With support for Jest/TestingLibrary. And with a special extended set for React development.
Installation
NPM
$ npm install @effective/eslint-config-factory
Yarn
$ yarn add @effective/eslint-config-factory
Usage
Put this into your e.g. .eslintrc.yml
root: true
extends:
- "@effective/eslint-config-factory/react"
Feel free to override single values while benefitting from the huge collection of fine-tuned settings.
Variations
The factory generates a few different configuration for usage:
index.yaml
: Core configuration without any hints of React (or TestingLibrary)react.yaml
: Enhanced core configuration with React specific rules and testing support includes TestingLibrary rules.
Merging Algorithm
We would not call it magic but rather the devout study of the existing presets and the development of automatic merging strategies in spite of the most diverse ways in which specifications are feasible in ESLint. Currently, over 400 rules are recognized as common and are therefore transferred virtually unchanged.
Some rules have to be deactivated based on TypeScript ... these hints come partly already by the actual authors of the respective plugins (TypeScript, Unicorn, ...). Others are pretty much identical, but differ in minor details. Here, the documentation of the rule was studied in each case and a decision was made. It turned out that some presets are simply very well maintained and discovered even small subtleties in the adjustability of the existing rules.
This is certainly one of the reasons why this solution here relies on importing previous presets and plugin recommendations instead of copying everything. In our opinion, this is the only way to ensure that the data here in the preset always corresponds to the current state.
Topic specific Linting Plugins
These plugins are not included as they are often focussed on a very narrow scope and could be easily added locally where needed:
Install these and follow their recommended settings if required.
License
Apache License; Version 2.0, January 2004
Copyright
Copyright 2022Sebastian Software GmbH