Skip to content

fix(build): resolve typedoc type errors and add tsc gate#17

Merged
Palbahngmiyine merged 1 commit intomasterfrom
fix/typedoc-build-errors
Apr 20, 2026
Merged

fix(build): resolve typedoc type errors and add tsc gate#17
Palbahngmiyine merged 1 commit intomasterfrom
fix/typedoc-build-errors

Conversation

@Palbahngmiyine
Copy link
Copy Markdown
Owner

Summary

  • v6.0.0 릴리즈 이후 GitHub Pages API Reference 문서 배포가 실패하고 있었던 건을 바로잡는다. 원인은 두 가지였음:
    1. pnpm run docs(typedoc)가 tsconfig의 include: ["src/**/*", "test/**/*"]로 전체 TS 컴파일을 수행하는데, 4개 타입 에러가 master HEAD에 존재
    2. CI는 Biome/Vitest/tsup(esbuild 계열)만 돌려 타입 오류를 한 번도 검증하지 않음 → typedoc만 유일한 타입체크 경로였음

Changes

Phase A — 4개 typedoc TS 에러 수정

  • src/lib/schemaUtils.ts:48Effect.void(= Effect<void, never>) → Effect.succeed<Date | undefined>(undefined)
  • test/lib/bms-test-utils.ts:8BmsChatBubbleType import 경로를 정식 re-export 위치(@/models/base/kakao/bms)로 교정
  • test/models/base/kakao/bms/bmsConstraints.test.ts:29-44it.each 튜플의 사용되지 않는 3번째 원소(true) 제거, 2-arg 콜백과 일치화
  • test/models/requests/messages/sendMessage.test.ts:600encoded.scheduledDate의 정적 타입이 string | Date이므로 new Date(...)로 정규화 후 .getTime() 호출

Phase B — 회귀 방지 게이트

  • package.json: "typecheck": "tsc --noEmit" 스크립트 신설
  • .github/workflows/ci.yml: lint 잡에 Typecheck step 추가

Test plan

  • pnpm typecheck (= tsc --noEmit) — 0 errors
  • pnpm test:ci — 374/374 passed
  • pnpm run docs — exit 0, docs/index.html 생성 확인 (warning만 남음)
  • pnpm build — lint + tsup 성공
  • CI 통과 확인 (PR 자동 실행)

Follow-up

  • 릴리즈 → 문서 빌드 자동 체인 복구는 별도 PR에서 처리: release-please가 GITHUB_TOKEN으로 생성한 릴리즈 이벤트는 다음 워크플로를 트리거하지 않는 GitHub 정책이 원인. release.ymlpublish 이후 gh workflow run build-docs.yaml --ref <tag>로 명시적 디스패치 잡을 추가할 예정.

🤖 Generated with Claude Code

`pnpm run docs`(typedoc)가 tsconfig의 include(src + test) 기준으로 전체
TypeScript 컴파일을 수행하다가 4개 타입 에러로 실패하여, v6.0.0 이후
GitHub Pages 문서 배포가 막혀 있었다. CI는 Biome/Vitest/tsup(모두 esbuild
계열)만 돌려 타입 에러를 잡지 못하는 공백이 있었다.

- src/lib/schemaUtils.ts: Effect.void(= Effect<void, never>)를
  Effect<Date | undefined, InvalidDateError> 자리에 사용하던 것을
  Effect.succeed<Date | undefined>(undefined)로 교정.
- test/lib/bms-test-utils.ts: BmsChatBubbleType을 내부용 type-only
  import만 존재하는 kakaoOption.ts가 아니라 정식 re-export 위치인
  @/models/base/kakao/bms 에서 import.
- test/models/base/kakao/bms/bmsConstraints.test.ts: 콜백이 2-arg인데
  it.each 튜플에 사용되지 않는 3번째 원소(`true`)가 섞여 있어 제거.
- test/models/requests/messages/sendMessage.test.ts: Schema.encodeSync
  결과의 scheduledDate 타입이 string | Date이므로 new Date(...) 정규화
  후 getTime 비교.

추가로 회귀 방지를 위해 package.json에 `typecheck` 스크립트
(tsc --noEmit)를 신설하고 CI lint 잡에 Typecheck step을 추가한다.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant