Package Exports
- eslint-define-config
Readme
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
# add eslint and eslint-define-config to project’s dev dependencies
npm add --save-dev eslint eslint-define-config
# or
yarn add --dev eslint eslint-define-config
# or
pnpm add --save-dev eslint eslint-define-config
Usage
.eslintrc.js
// @ts-check
// To activate auto-suggestions for Rules of specific plugins, you need to add a `/// <reference types="eslint-plugin-PLUGIN_NAME/define-config-support" />` comment.
// ⚠️ This feature is very new and requires the support of the respective plugin owners.
/// <reference types="@typescript-eslint/eslint-plugin/define-config-support" />
const { defineConfig } = require('eslint-define-config');
module.exports = defineConfig({
root: true,
rules: {
// rules...
},
});
Flat Config
eslint.config.js
// @ts-check
const { defineFlatConfig } = require('eslint-define-config');
module.exports = defineFlatConfig([
'eslint:recommended',
{
plugins: {
// plugins...
},
rules: {
// rules...
},
},
]);
Why?
Improve your eslint configuration experience with:
- auto-suggestions
- type checking (Use
// @ts-check
at the first line in your.eslintrc.js
oreslint.config.js
) - documentation
- deprecation warnings

Video
Click on the thumbnail to play the video

Want to support your own plugin?
⚠️ 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 {
/**
* Require consistently using either `T[]` or `Array<T>` for arrays.
*
* @see [array-type](https://typescript-eslint.io/rules/array-type)
*/
'@typescript-eslint/array-type': [
{
default?: 'array' | 'generic' | 'array-simple';
readonly?: 'array' | 'generic' | 'array-simple';
},
];
// ... more Rules
}
}
There are other interfaces that can be extended.
CustomExtends
CustomParserOptions
CustomParsers
CustomPlugins
CustomSettings
Credits
- Proposal Idea
- Vite and Evan You for the idea
- @antfu and his tweet