@kkingsbe/eslint-config
v1.0.84
Published
This is my personal ESLint configuration with fairly strict rules for TypeScript projects. This config enforces code quality standards, documentation requirements, and maintainability best practices.
Maintainers
Readme
@kkingsbe/eslint-config
This is my personal ESLint configuration with fairly strict rules for TypeScript projects. This config enforces code quality standards, documentation requirements, and maintainability best practices.
Features
- TypeScript Support: Full TypeScript linting with recommended type-checked rules
- Code Quality: SonarJS rules for detecting bugs and code smells
- Documentation: JSDoc enforcement for all public functions, classes, interfaces, and type definitions
- Code Formatting: Prettier integration for consistent code style
- Complexity Limits: Enforced limits on function length, nesting depth, and file size
- Node.js & Jest: Configured for Node.js and Jest testing environments
Installation
npm install --save-dev @kkingsbe/eslint-configUsage
Create an eslint.config.js file in your project root:
import config from '@kkingsbe/eslint-config';
export default config;Or extend it with your own rules:
import kyleConfig from '@kkingsbe/eslint-config';
export default [
...kyleConfig,
{
rules: {
// Your custom rules here
},
},
];Required Peer Dependencies
Make sure you have these dependencies installed:
npm install --save-dev eslint typescriptOptional Peer Dependencies
If using this config with Angular, you will need to run the following:
npm install -d angular-eslintConfiguration Details
Included Plugins & Configs
- @eslint/js: ESLint recommended rules
- typescript-eslint: TypeScript-specific linting with type checking
- eslint-plugin-sonarjs: Code quality and bug detection rules
- eslint-plugin-jsdoc: JSDoc documentation enforcement
- eslint-plugin-prettier: Code formatting integration
Key Rules
- JSDoc Required: All public functions, classes, interfaces, type aliases, and enums must have JSDoc comments
- Function Length: Maximum 70 lines per function (excluding blank lines and comments)
- Nesting Depth: Maximum 3 levels of nesting
- File Length: Maximum 300 lines per file
- TypeScript: Relaxed
no-explicit-any, but warns on floating promises and unsafe arguments
Environment Support
- Node.js globals
- Jest testing framework globals
- CommonJS module system
TypeScript Configuration
This config expects a tsconfig.json file in your project root. The TypeScript parser will use project service for type-aware linting.
License
ISC
This is Kyle's (@kkingsbe) personal ESLint configuration. Feel free to use it as a starting point for your own projects!
