npm.io
0.0.3 • Published 1 year ago

eslint-config-moni-web

Licence
MIT
Version
0.0.3
Deps
0
Size
11 kB
Vulns
0
Weekly
0

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 prettier

Or 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 --dev

Usage

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

Keywords