이 프로젝트의 모든 주요 변경사항을 기록합니다.
형식은 Keep a Changelog를 기반으로 하며, Semantic Versioning을 따릅니다.
.bru파일에서 MSW 핸들러 자동 생성--msw-output옵션으로 MSW 핸들러 출력 디렉토리 지정- 도메인별 MSW 핸들러 그룹화 및 index 파일 자동 생성
meta.done필드로 MSW 생성 제어done: true: MSW 생성 건너뛰기 (백엔드 완료시)done없음 또는false: MSW 핸들러 자동 생성
파일 추가:
src/generator/mswGenerator.ts: MSW 핸들러 생성 로직
사용 예시:
npx bruno-api generate-hooks -i ./bruno -o ./src/apis --msw-output ./src/mocks생성되는 구조:
src/mocks/
├── admin/
│ ├── get-list.ts
│ ├── post-create.ts
│ └── index.ts
├── users/
│ ├── get-profile.ts
│ └── index.ts
└── handlers.ts
- Bruno 폴더명에서
한글명 [EnglishKey]형식 지원 - 대괄호
[]안의 영문 키만 추출하여 파일명 및 도메인으로 사용 - 한글 폴더명으로 가독성 확보, 영문 키로 코드 생성
예시:
사용자 [admin]/get-list.bru→ 도메인:admin지원서 [applications]/create.bru→ 도메인:applications상품 [products]/update.bru→ 도메인:products
파일 수정:
src/generator/index.ts:48-60: extractDomain() 함수에[키]추출 로직 추가src/converter/openapiConverter.ts:131-143: extractDomain() 함수 수정src/diff/changeDetector.ts:189-202: extractDomain() 함수 수정
meta블록에done필드 추가done: true파싱 지원
파일 수정:
src/parser/bruParser.ts:27: ParsedBrunoFile 인터페이스에done?: boolean추가src/parser/bruParser.ts:188-191: parseMeta() 함수에 done 필드 파싱 로직 추가
docs/bruno-guide.md: MSW 생성 제어 및 한글 폴더명 사용 가이드 추가README.md: MSW 기능 및 한글 폴더명 지원 추가README.ko.md: 한국어 문서 업데이트
.bru파일 파싱meta.done확인done: true면 건너뛰기- 그 외의 경우 MSW 핸들러 생성
docs블록에서 JSON 추출- MSW 핸들러 코드 생성
- 도메인별 디렉토리에 파일 저장
- 도메인별 index.ts 생성
- 전체 handlers.ts 생성
const match = folderName.match(/\[([^\]]+)\]/);
if (match) {
return match[1]; // 대괄호 안의 키만 반환
}
return folderName; // 대괄호가 없으면 폴더명 그대로 반환- Bruno to OpenAPI conversion
- Change detection
- Changelog generation (MD/JSON/HTML)
- Breaking change identification
- CLI tool
- TypeScript type generation
- API client generation
- Typed API client generation
기존 영문 폴더명을 그대로 사용하거나, 한글 폴더명으로 변경할 수 있습니다.
변경 전:
bruno/
└── applications/
└── get-list.bru
변경 후:
bruno/
└── 지원서 [applications]/
└── get-list.bru
생성되는 파일명은 동일합니다: applications/useGetApplicationsList.ts
기존 API 클라이언트 생성에 --msw-output 옵션을 추가하면 됩니다.
package.json 업데이트:
{
"scripts": {
"api:hooks": "bruno-api generate-hooks -i ./bruno -o ./src/apis",
"api:mocks": "bruno-api generate-hooks -i ./bruno -o ./src/apis --msw-output ./src/mocks"
}
}이미 백엔드가 완료된 API는 meta.done: true를 추가하여 MSW 생성을 건너뛸 수 있습니다.
예시:
meta {
name: Get User Profile
type: http
seq: 1
done: true # 백엔드 완료, MSW 불필요
}- Claude Code AI Assistant