Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions apps/client/.env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
VITE_BASE_URL= 'API 기본 URL'
VITE_SENTRY_DSN='센트리DSN'
# API
VITE_API_BASE_URL=

# Sentry
VITE_SENTRY_DSN=
VITE_SENTRY_RELEASE=

# Swagger 인증
SWAGGER_USERNAME=
SWAGGER_PASSWORD=
2 changes: 1 addition & 1 deletion apps/client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run --passWithNoTests",
"generate:types": "openapi-typescript https://dev.clustar.cloud/v3/api-docs -o ./src/shared/types/schema.d.ts"
"generate:types": "dotenv -- sh scripts/generate-types.sh"
},
"dependencies": {
"@cds/icon": "workspace:*",
Expand Down
28 changes: 28 additions & 0 deletions apps/client/scripts/generate-types.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh
set -eu

# 필수 환경변수 검증
: "${SWAGGER_USERNAME:?SWAGGER_USERNAME이 .env에 필요합니다}"
: "${SWAGGER_PASSWORD:?SWAGGER_PASSWORD가 .env에 필요합니다}"
: "${VITE_API_BASE_URL:?VITE_API_BASE_URL이 .env에 필요합니다}"

DOCS_URL="${VITE_API_BASE_URL%/}/v3/api-docs"
OUTPUT="src/shared/apis/schema.d.ts"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 스크립트를 실행하면 schema.d.ts 파일이 위의 경로에 설치되는데,
develop 브랜치에서는 schema.d.ts의 경로가 apps/client/src/shared/types/schema.d.ts에 있어요.

기존 apis/types에서는 모두 apps/client/src/shared/types/schema.d.ts 이 경로를 참조하고 있어서
import 경로를 다시 수정해주면 좋아보이네요 :D


#종료 시 임시 파일 삭제
TMP_FILE=$(mktemp)
trap 'rm -f "$TMP_FILE"' EXIT

# curl 설정 전체를 stdin으로 전달 — URL/자격증명의 ps 노출 방지
curl --config - <<EOF
url = "$DOCS_URL"
user = "$SWAGGER_USERNAME:$SWAGGER_PASSWORD"
output = "$TMP_FILE"
fail
silent
show-error
EOF

pnpm exec openapi-typescript "$TMP_FILE" -o "$OUTPUT"

echo "✅ 타입 생성 완료: $OUTPUT"
Loading
Loading