eslint-define-config
Provide a defineConfig
function for .eslintrc.js
, and a defineFlatConfig
function for eslint.config.js
files.
This project is written by a human and only partially automatically generated!
Some rules are even enhanced by hand!
Unfortunately, this has the disadvantage that not everything is immediately defined. For example, if a rule is not defined, it falls back to a basic definition.
However, the advantage is that you get documentation for pretty much everything in the code and usually get a direct link to the respective plugin or eslint rule. The types are also strictly typed.
So if you are missing something like a rule or a plugin that should also be supported or a rule definition is e.g. out of date, feel free to open an issue or PR for it.
Installation
npm add --save-dev eslint eslint-define-config
yarn add --dev eslint eslint-define-config
pnpm add --save-dev eslint eslint-define-config
Usage
.eslintrc.js
const { defineConfig } = require('eslint-define-config');
module.exports = defineConfig({
root: true,
rules: {
},
});
Flat Config
eslint.config.js
const { defineFlatConfig } = require('eslint-define-config');
module.exports = defineFlatConfig([
'eslint:recommended',
{
plugins: {
},
rules: {
},
},
]);
Why?
Improve your eslint configuration experience with:
- auto-suggestions
- type checking (Use
// @ts-check
at the first line in your .eslintrc.js
or eslint.config.js
) - documentation
- deprecation warnings
Video
Click on the thumbnail to play the video
Want to support your own plugin?
:warning: This feature is very new and requires the support of the respective plugin owners
Add a declare module
to your plugin package like this:
declare module 'eslint-define-config' {
export interface CustomRuleOptions {
'@typescript-eslint/array-type': [
{
default?: 'array' | 'generic' | 'array-simple';
readonly?: 'array' | 'generic' | 'array-simple';
},
];
}
}
There are other interfaces that can be extended.
CustomExtends
CustomParserOptions
CustomParsers
CustomPlugins
CustomSettings
Credits