Skip to content

kylsgl/eslint-config

Repository files navigation

@kylsgl/eslint-config

ESLint rules for JavaScript, TypeScript, and React, based on the Airbnb JavaScript Style Guide.

NPM Version CI Status Codecov Coverage GitHub License

Installation

npm install --save-dev @kylsgl/eslint-config

Important

Requirements

  • ESLint v9.25.x and above
  • Node.js v22.x and above
  • ESM

Usage

// eslint.config.mjs
import { configs } from '@kylsgl/eslint-config';

export default [
	...configs.base,
	...configs.typeScriptTypeChecked,
	...configs.prettier,
	{
		rules: {
			// Your custom rules
		},
	},
];

TypeScript

This config disables some rules in favor of TypeScript's own type checking.

// tsconfig.json
{
	"compilerOptions": {
		"strict": true,
		"allowUnreachableCode": false,
		"noFallthroughCasesInSwitch": true,
		"noImplicitOverride": true,
		"noImplicitReturns": true,
		"noPropertyAccessFromIndexSignature": true,
		"noUncheckedSideEffectImports": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true
	}
}

Configs

Name Description
base Base rules
prettier Compatibility rules for Prettier
react Base rules for React
reactTypeScript TypeScript rules for React
typeScript Base rules for TypeScript
typeScriptTypeChecked Base rules for TypeScript with type-checking rules

Rules

Rules for eslint-plugin-kylsgl

💼 Configurations enabled in.
✅ Set in the base configuration.
🔧 Automatically fixable by the --fix CLI option.
💡 Manually fixable by editor suggestions.

Name Description 💼 🔧 💡
kylsgl/no-default-params Disallows assigning default values to function parameters parameters
kylsgl/no-top-level-function-expression Disallows defining function expressions at the top-level scope
kylsgl/no-unsafe-division Disallow unsafe division operations by requiring divisor checks to prevent potential division by zero

Plugins

This config uses the following plugins:

Base

  • @stylistic/eslint-plugin
  • @vitest/eslint-plugin
  • eslint-plugin-import-x
  • eslint-plugin-n
  • eslint-plugin-package-json
  • eslint-plugin-perfectionist
  • eslint-plugin-promise
  • eslint-plugin-regexp
  • eslint-plugin-simple-import-sort
  • eslint-plugin-sonarjs
  • eslint-plugin-unicorn

TypeScript

  • eslint-plugin-tsdoc
  • typescript-eslint

React

  • eslint-plugin-jsx-a11y
  • eslint-plugin-react-dom
  • eslint-plugin-react-hooks
  • eslint-plugin-react-jsx
  • eslint-plugin-react-naming-convention
  • eslint-plugin-react-refresh
  • eslint-plugin-react-web-api
  • eslint-plugin-react-x
  • eslint-plugin-testing-library

License

MIT

About

ESLint rules for JavaScript, TypeScript, and React, based on the Airbnb JavaScript Style Guide.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors