eslint-config-moni-web
v0.0.3
Published
Moni's ESLint config, following our styleguide for web projects
Downloads
51
Readme
eslint-config-moni-web
ESLint configuration for Moni's web projects, following our styleguide for web projects. Compatible with ESLint 9+ and TypeScript ESLint 8+.
Features
- TypeScript support with strict type checking rules
- React support with hooks and JSX rules
- Prettier integration for consistent formatting
- Import sorting with
simple-import-sort - Promise best practices with
eslint-plugin-promise - Modern ESLint 9+ flat config format
Installation
All dependencies must be installed explicitly due to ESLint's peer dependency requirements:
npm install --save-dev eslint-config-moni-web eslint @eslint/js @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-config-next eslint-config-prettier eslint-plugin-prettier eslint-plugin-promise eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-simple-import-sort prettierOr use install-peerdeps for easier installation:
npm install install-peerdeps --global
npm install eslint-config-moni-web --save-dev
install-peerdeps eslint-config-moni-web --devUsage
ESLint 9+ (Flat Config) - Recommended
Create an eslint.config.js file in your project root:
const config = require('eslint-config-moni-web');
module.exports = [
...config,
{
// Your project-specific rules
rules: {
// Additional rules...
}
}
];Or using ES modules:
import moniWebConfig from 'eslint-config-moni-web';
export default [
...moniWebConfig,
{
// Your project-specific rules
rules: {
// Additional rules...
}
}
];Running ESLint
# Check all files
npx eslint .
# Check specific directory
npx eslint src/
# Check specific file
npx eslint src/index.ts
# Auto-fix issues
npx eslint src/ --fix
# Check TypeScript files only
npx eslint "**/*.{ts,tsx}"Configuration Details
This configuration includes:
Base Rules
- Line length limit: 150 characters
- Consistent spacing and formatting
- Curly braces enforcement
- Parameter reassignment prevention
TypeScript Rules
- Strict type checking
- Naming conventions (PascalCase for classes, interfaces)
- Explicit member accessibility
- Module boundary types enforcement
React Rules
- JSX filename extensions
- Hooks rules
- Deprecated API prevention
- Unsafe patterns detection
Import Rules
- Automatic import sorting with
simple-import-sort - Grouped imports (Node.js, React, types, internal, hooks, relative)
Prettier Integration
- Single quotes
- 4-space indentation
- Trailing commas
- Consistent line endings
Requirements
- Node.js >= 18.0.0
- ESLint >= 9.29.0
- TypeScript ESLint >= 8.15.0
- TypeScript >= 4.0.0 (for TypeScript projects)
Version
Current version: 0.0.3
License
MIT
