Mahir ESLint Config
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.
Installation
npm install --save-dev eslint eslint-config-mahir
Usage
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"
}
}
Configs
This package contains eslint config for
-
common
rules common for all configs -
node
rules for nodejs projects -
module
rules for esm projects -
typescript
rules for typescript projects -
jsx
rules for jsx/tsx projects -
react
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 projects -
edge
rules for projects running in edge -
jsdoc
jsdoc related config -
tsdoc
tsdoc related config (this config contains all thejsdoc
rules too) -
no-deprecated
rules to warn about using deprecated apis
Contributors ✨
Thanks goes to these wonderful people: