eslint-config-extreme
v3.1.1
Published
Extreme ESLint configuration
Maintainers
Readme
ESLint Config Extreme
A comprehensive, modular ESLint configuration for modern JavaScript and TypeScript projects. Built for ESLint v9+ flat config format with all plugins included out of the box.
Features
- 🚀 ESLint v9+ Flat Config - Modern configuration format
- 🔧 Pre-built Configurations - All plugins included, no setup required
- 🌐 ESM Compatible - Works perfectly in ESM-only environments
- 📦 Zero Configuration - Just import and use
- 🎯 Environment-Specific - Tailored configs for different environments
- 🔒 TypeScript First - Full TypeScript support with type-aware rules
Quick Start
Installation
npm install --save-dev eslint-config-extreme
# or
pnpm add -D eslint-config-extreme
# or
yarn add -D eslint-config-extremeBasic Setup
// eslint.config.js
import { configs } from 'eslint-config-extreme';
export default [
...configs.base,
...configs.typescript
];Recommended Configurations (Zero Setup Required!)
Choose the configuration that fits your environment - all plugins are included automatically:
Environment-Agnostic (Most Projects)
// eslint.config.js
import { configs } from 'eslint-config-extreme';
export default await configs.recommended;Web/React Applications
// eslint.config.js
import { configs } from 'eslint-config-extreme';
export default await configs.recommendedWeb;Node.js Applications
// eslint.config.js
import { configs } from 'eslint-config-extreme';
export default await configs.recommendedNode;Everything Available (Full Coverage)
// eslint.config.js
import { configs } from 'eslint-config-extreme';
export default await configs.recommendedAll;What's Included
All Recommended Configurations Include:
- ✅ TypeScript support (always included)
- ✅ Import/export rules (eslint-plugin-import-x)
- ✅ Promise best practices (eslint-plugin-promise)
- ✅ Code quality rules (eslint-plugin-sonarjs)
- ✅ Unused imports removal (eslint-plugin-unused-imports)
- ✅ ESLint comment rules (eslint-plugin-eslint-comments)
- ✅ JSDoc documentation (eslint-plugin-jsdoc)
Additional Features by Configuration:
recommendedWeb adds:
- ✅ React rules (eslint-plugin-react)
- ✅ React Hooks rules (eslint-plugin-react-hooks)
- ✅ Accessibility rules (eslint-plugin-jsx-a11y)
- ✅ JSON linting
recommendedNode adds:
- ✅ Node.js specific rules (eslint-plugin-n)
- ✅ JSON linting
recommendedAll adds:
- ✅ All React/Web rules
- ✅ All Node.js rules
- ✅ JSON linting
- ✅ Project structure enforcement (eslint-plugin-project-structure)
Available Configurations
Basic Configurations
base- Core ESLint rules and best practicestypescript- TypeScript support with stylistic rules
Recommended Configurations (All Plugins Included)
recommended- Environment-agnostic (TypeScript + extended rules)recommendedWeb- Web/React applicationsrecommendedNode- Node.js applicationsrecommendedAll- Everything available
Individual Configurations
extended- Enhanced rules with core pluginsreact- React and JSX rulesnode- Node.js specific rulesjson- JSON file lintingstructure- Project folder structure enforcement
Use Cases
recommendedAll is Perfect For:
- Monorepos - Projects with both web and Node.js code
- Full-stack applications - Frontend and backend in same repository
- Development environments - Maximum linting coverage
- CI/CD pipelines - Comprehensive code quality checks
- Teams with mixed projects - One config that works everywhere
Example: Monorepo Setup
// eslint.config.js
import eslintExtreme from 'eslint-config-extreme';
export default await eslintExtreme.configs.recommendedAll;That's it! No plugins to install, no complex configuration - everything just works.
Migration from v1.x
Version 2.0 introduces a much simpler approach:
Before (v1.x)
import { configs } from 'eslint-config-extreme';
export default [
...configs.recommended
];After (v2.x) - Much Simpler!
import eslintExtreme from 'eslint-config-extreme';
// Just import and use - all plugins included!
export default await eslintExtreme.configs.recommended;Advanced Usage
Custom Configuration
import eslintExtreme from 'eslint-config-extreme';
export default [
// Start with recommended
...(await eslintExtreme.configs.recommended),
// Add your custom rules
{
rules: {
'no-console': 'warn',
'@typescript-eslint/no-unused-vars': 'error'
}
}
];Environment-Specific Overrides
import eslintExtreme from 'eslint-config-extreme';
export default [
...(await eslintExtreme.configs.recommendedWeb),
// Override for test files
{
files: ['**/*.test.{js,ts,jsx,tsx}'],
rules: {
'no-console': 'off'
}
}
];Why This Approach?
Based on the ESLint v9 migration guide, we've implemented a solution that:
- ✅ Works in ESM-only environments - No dynamic require() issues
- ✅ Includes all plugins - No need to install or configure plugins manually
- ✅ Zero configuration - Just import and use
- ✅ Future-proof - Built for ESLint v9+ flat config format
- ✅ Comprehensive - All the rules you need out of the box
License
MIT © DTOX Consulting
