@effective/eslint-config-factory

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

Usage no npm install needed!

<script type="module">
  import effectiveEslintConfigFactory from 'https://cdn.skypack.dev/@effective/eslint-config-factory';
</script>

README

@Effective / ESLint Factory

Sponsored by Version Downloads Build Status

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

Feel free to override single values while benefitting from the huge collection of fine-tuned settings.

Customization

TODO

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

Logo of Sebastian Software GmbH, Mainz, Germany

Copyright 2022
Sebastian Software GmbH