ESLint rules for JavaScript, TypeScript, and React, based on the Airbnb JavaScript Style Guide.
npm install --save-dev @kylsgl/eslint-configImportant
Requirements
- ESLint v9.25.x and above
- Node.js v22.x and above
- ESM
// eslint.config.mjs
import { configs } from '@kylsgl/eslint-config';
export default [
...configs.base,
...configs.typeScriptTypeChecked,
...configs.prettier,
{
rules: {
// Your custom rules
},
},
];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
}
}| 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 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 | ✅ |
This config uses the following plugins:
@stylistic/eslint-plugin@vitest/eslint-plugineslint-plugin-import-xeslint-plugin-neslint-plugin-package-jsoneslint-plugin-perfectionisteslint-plugin-promiseeslint-plugin-regexpeslint-plugin-simple-import-sorteslint-plugin-sonarjseslint-plugin-unicorn
eslint-plugin-tsdoctypescript-eslint
eslint-plugin-jsx-a11yeslint-plugin-react-domeslint-plugin-react-hookseslint-plugin-react-jsxeslint-plugin-react-naming-conventioneslint-plugin-react-refresheslint-plugin-react-web-apieslint-plugin-react-xeslint-plugin-testing-library