NestJS의 헬퍼 라이브러리 Nestia를 사용하면
컨트롤러의 input output에 관한 sdk를 생성해준다.
참고 : https://nestia.io/docs/sdk/sdk/
이 sdk를 사용하면 자바스크립트 클라이언트 개발자들이 조금 더 편한 환경에서 개발할 수 있어보여
알아보는 중에 알게된 주의사항을 적어본다.
export 하지 않은 type (또는 interface)를 사용하면
sdk에서 타입추론을 하지 못한다.
왜인가 하니... sdk 내에서도 export를 하지 않아서 가져오지 못했다.
원시타입을 제외한,
input: { name: string; email: string }
과 같이 직접 타입 정의를 하는 경우 __type
과 같이 생성된 타입을 sdk에 만들어 주는데
1번과 같이 export가 되어 있지 않기 때문에 추론이 안된다.
type User = { name: string; email: string }
처럼 따로 빼서 정의를 해주어야 한다.
타입 정의를 내가 원하는 위치에 구현해 놓으면
packages/api
폴더에서 sdk deploy를 할 때 에러가 발생한다.
nestia.config.ts
설정 파일에 clone 옵션이 기본으로 false 값을 갖는데
true
로 설정을 해주면 structures
폴더에 사용되는 모든 타입들이 clone되어 잘 tsc가 된다.
npx nestia sdk
를 사용해서 생성된 패키지 제이슨의 name, repository 등 기본 값이 정의되어 있어
내 설정에 맞게 따로 수정해주어야 한다.
레파지토리 루트의 패키지 제이슨을 바라보지 않는 것 같다.