/eslint-config-mahir

The ultimate ESLint shareable config

Primary LanguageTypeScriptMIT LicenseMIT

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.


npm version npm downloads

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 the jsx rules too)
  • native rules for react native projects (this config contains all the react 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 the jsdoc rules too)
  • no-deprecated rules to warn about using deprecated apis

Contributors ✨

Thanks goes to these wonderful people: