The ultimate ESLint shareable config. This config includes all of the ESLint rules that I use in my projects.
Important
This is a highly opinionated config. It's based on my personal preferences and the way I write code. I don't recommend using this config as is as I'll update it based on my preferences without any notice.
npm install --save-dev eslint eslint-config-mahir
Add in your ESLint config
{
"extends": [
"mahir/common",
"mahir/node",
"mahir/module",
"mahir/typescript",
"mahir/react",
"mahir/next",
"mahir/edge"
]
}
You can remove any of the configs you don't need.
Note:
For typescript users, mahir/typescript
will try to find a tsconfig with name tsconfig.eslint.json
in the root of your project. If you want to use a different name, you can change it in your eslint config like this:
{
"parserOptions": {
"project": "./tsconfig.json"
}
}
This package contains eslint config for
common
rules common for all configsnode
rules for nodejs projectsmodule
rules for esm projectstypescript
rules for typescript projectsjsx
rules for jsx/tsx projectsreact
rules for react projects (this config contains all thejsx
rules too)native
rules for react native projects (this config contains all thereact
rules too)next
rules for nextjs projectsedge
rules for projects running in edgejsdoc
jsdoc related configtsdoc
tsdoc related config (this config contains all thejsdoc
rules too)no-deprecated
rules to warn about using deprecated apis
Thanks goes to these wonderful people: