npm package: @melior/eslint-plugin
Description: ❤️ Удобный ESLint плагин с авто-форматированием. Prettier больше не нужен :D
Author: Mark Melior
Latest version: 2.0.2

# @melior/eslint-plugin

> ❤️ Удобный ESLint плагин с авто-форматированием. Prettier больше не нужен :D

Устали от бесконечной настройки ESLint? Надоело совмещать Prettier с ESLint? **@melior/eslint-plugin** — это готовое решение, которое объединяет всё необходимое для современной разработки на TypeScript и React в одном месте!

## ✨ Почему именно @melior/eslint-plugin?

### 🎯 Всё включено из коробки
Забудьте о часах настройки! @melior/eslint-plugin включает в себя:
- **TypeScript** — полная поддержка с лучшими практиками
- **React** — правила для React и React Hooks
- **Stylistic** — авто-форматирование кода (замена Prettier)
- **Import** — умная сортировка и организация импортов
- **Perfectionist** — идеальная сортировка объектов, типов и интерфейсов

### 🚀 Без Prettier
Да, вы правильно поняли! Благодаря [@stylistic/eslint-plugin](https://eslint.style/), вам больше не нужен Prettier. Всё форматирование происходит прямо в ESLint с помощью `--fix`.

### 🎨 Гибкая настройка
- Используйте готовую конфигурацию `recommended` для быстрого старта
- Подключайте только нужные модули через `customRules`
- Настраивайте исключения для конкретных файлов через `fileRules`

### 🔧 Современный подход
Полная поддержка нового **Flat Config** формата ESLint 9+. Никаких устаревших `.eslintrc` файлов!

## 📦 Установка

```bash
npm install --save-dev @melior/eslint-plugin eslint
```

или

```bash
yarn add -D @melior/eslint-plugin eslint
```

или

```bash
pnpm add -D @melior/eslint-plugin eslint
```

## 🚀 Быстрый старт

Создайте файл `eslint.config.js` в корне проекта:

```javascript
import melior from '@melior/eslint-plugin';

export default melior.recommended;
```

**Вот и всё!** 🎉 Вы получили полностью настроенный ESLint с форматированием кода!

## 📝 Использование

Добавьте скрипты в `package.json`:

```json
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}
```

Теперь можно:
- `npm run lint` — проверить код на ошибки
- `npm run lint:fix` — исправить ошибки и отформатировать код

## 🎛️ Продвинутая настройка

### Выборочное подключение правил

Если вам не нужны все модули, подключайте только необходимые:

```javascript
import melior from '@melior/eslint-plugin';

export default [
  ...melior.baseRules.tseslint,
  melior.baseRules.stylistic,
  melior.customRules.common,
  melior.customRules.typescript,
  melior.customRules.react,
];
```

### Добавление своих правил

```javascript
import melior from '@melior/eslint-plugin';

export default [
  ...melior.recommended,
  {
    rules: {
      'no-console': 'warn',
      '@typescript-eslint/no-unused-vars': 'error',
    },
  },
];
```

### Использование встроенных исключений

@melior/eslint-plugin включает готовые исключения для служебных файлов:

```javascript
import melior from '@melior/eslint-plugin';

export default [
  ...melior.recommended,
  melior.fileRules['global.d.ts'],   // Отключает строгость для global.d.ts
  melior.fileRules['scripts/**'],     // Разрешает console.log в скриптах
];
```

### Свои исключения для файлов

```javascript
import melior from '@melior/eslint-plugin';

export default [
  ...melior.recommended,
  {
    files: ['**/*.test.ts', '**/*.test.tsx'],
    rules: {
      '@typescript-eslint/no-explicit-any': 'off',
    },
  },
];
```

## 📚 Что входит в состав

### Base Rules (базовые правила)
- `@stylistic/eslint-plugin` — форматирование кода
- `typescript-eslint` — рекомендованные правила TypeScript

### Custom Rules (кастомные правила)
- **common** — общие правила JavaScript/TypeScript
- **typescript** — расширенные правила TypeScript
- **stylistic** — настройки форматирования (отступы, кавычки, точки с запятой)
- **import** — организация импортов
- **perfectionist** — сортировка объектов и типов
- **react** — правила для React и Hooks

### File Rules (исключения для файлов)
- **global.d.ts** — разрешает `any` в глобальных типах
- **scripts/\*\*** — разрешает `console.log` и `require` в скриптах

## 🤝 Совместимость

- Node.js >= 18.0.0
- ESLint >= 9.38.0
- TypeScript (опционально, но рекомендуется)
- React (опционально, только если используете React)

## 🎓 Миграция с Prettier

Если вы раньше использовали Prettier:

1. Удалите Prettier и его конфиги:
   ```bash
   npm uninstall prettier
   rm .prettierrc .prettierignore
   ```

2. Установите @melior/eslint-plugin (см. выше)

3. Обновите скрипты в `package.json` — теперь только `eslint --fix`

4. Отформатируйте весь проект:
   ```bash
   npm run lint:fix
   ```

## 📄 Лицензия

MIT © [Mark Melior](https://github.com/MarkMelior)

---

<div align="center">
  <sub>Сделано с ❤️ для разработчиков, которые ценят своё время</sub>
</div>