# @wishket/eslint-config-wishket

이 패키지는 확장 가능한 공유 구성으로 Wishket의 ESLint 설정을 제공합니다.

## Installation

### Automatic Installation (권장)

`install-peerdeps`를 사용하여 모든 peer dependencies를 자동으로 설치:

```sh
npx install-peerdeps --dev @wishket/eslint-config-wishket
```

### Manual Installation

수동으로 설치하려면:

```sh
npm install --save-dev @wishket/eslint-config-wishket
```

그리고 모든 peer dependencies를 설치:

```sh
npm install --save-dev \
  eslint \
  typescript \
  prettier \
  @typescript-eslint/eslint-plugin \
  @typescript-eslint/parser \
  eslint-plugin-file-export-name \
  eslint-plugin-import \
  eslint-plugin-jest \
  eslint-plugin-jest-dom \
  eslint-plugin-jest-formatting \
  eslint-plugin-n \
  eslint-plugin-naming-convention \
  eslint-plugin-prettier \
  eslint-plugin-promise \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
  eslint-plugin-testing-library \
  eslint-plugin-unused-imports
```

**Yarn 사용 시:**

```sh
yarn add --dev @wishket/eslint-config-wishket \
  eslint \
  typescript \
  prettier \
  @typescript-eslint/eslint-plugin \
  @typescript-eslint/parser \
  eslint-plugin-file-export-name \
  eslint-plugin-import \
  eslint-plugin-jest \
  eslint-plugin-jest-dom \
  eslint-plugin-jest-formatting \
  eslint-plugin-n \
  eslint-plugin-naming-convention \
  eslint-plugin-prettier \
  eslint-plugin-promise \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
  eslint-plugin-testing-library \
  eslint-plugin-unused-imports
```

**pnpm 사용 시:**

```sh
pnpm add --save-dev @wishket/eslint-config-wishket \
  eslint \
  typescript \
  prettier \
  @typescript-eslint/eslint-plugin \
  @typescript-eslint/parser \
  eslint-plugin-file-export-name \
  eslint-plugin-import \
  eslint-plugin-jest \
  eslint-plugin-jest-dom \
  eslint-plugin-jest-formatting \
  eslint-plugin-n \
  eslint-plugin-naming-convention \
  eslint-plugin-prettier \
  eslint-plugin-promise \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
  eslint-plugin-testing-library \
  eslint-plugin-unused-imports
```

### Peer Dependencies 버전 확인

최신 peer dependencies 버전을 확인하려면:

```sh
npm info "@wishket/eslint-config-wishket@latest" peerDependencies
```

### Optional Dependencies

다음 dependencies는 선택사항입니다:

- `typescript` - TypeScript를 사용하지 않는 프로젝트는 생략 가능
- `eslint-plugin-jest` - Jest를 사용하지 않는 프로젝트는 생략 가능
- `eslint-plugin-jest-dom` - Jest DOM을 사용하지 않는 프로젝트는 생략 가능
- `eslint-plugin-jest-formatting` - Jest 포맷팅이 필요 없는 프로젝트는 생략 가능
- `eslint-plugin-testing-library` - Testing Library를 사용하지 않는 프로젝트는 생략 가능

## Usage

`.eslintrc.js` 파일에 다음을 추가:

```javascript
module.exports = {
  extends: ["@wishket/eslint-config-wishket"],
  // ...other settings
}
```

또는 `.eslintrc.json`:

```json
{
  "extends": ["@wishket/eslint-config-wishket"]
}
```

## Migrating from v1.x

v2.0에서는 모든 플러그인이 peer dependencies로 이동했습니다. 자세한 마이그레이션 가이드는 [MIGRATION.md](./MIGRATION.md)를 참조하세요.

## What's Included

이 설정에는 다음이 포함됩니다:

- Wishket JavaScript Code Style 규칙
- TypeScript 지원 (`@typescript-eslint`)
- React 규칙 (`eslint-plugin-react`, `eslint-plugin-react-hooks`)
- Jest 테스트 규칙 (`eslint-plugin-jest`, `eslint-plugin-jest-dom`, 등)
- Import 관리 (`eslint-plugin-import`, `eslint-plugin-unused-imports`)
- Prettier 통합 (`eslint-plugin-prettier`)
- 네이밍 컨벤션 (`eslint-plugin-naming-convention`)
- 파일명-export 일치 검증 (`eslint-plugin-file-export-name`)

## License

MIT
