@axyl-tcb/create-template 1.0.21 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/index.js CHANGED
@@ -80,7 +80,10 @@ async function resolveIncludeTests() {
80
80
  console.log(' cp .env.example .env # 연결 정보 입력 — README 참고');
81
81
  console.log(' npm run deploy:build');
82
82
  console.log('');
83
- console.log(' ※ npm audit high 경고는 @cloudbase SDK 알려진 전이 취약점입니다.');
84
- console.log(' 정상이며 SECURITY.md 에 설명돼 있습니다 — `npm audit fix --force` 는 실행하지 마세요.');
85
- console.log('');
83
+ // 최소 구성은 @cloudbase/node-sdk 포함하지 않아 audit 깨끗하므로 안내 불필요
84
+ if (includeTests) {
85
+ console.log(' ※ npm audit 의 high 경고는 @cloudbase SDK 의 알려진 전이 취약점입니다.');
86
+ console.log(' 정상이며 SECURITY.md 에 설명돼 있습니다 — `npm audit fix --force` 는 실행하지 마세요.');
87
+ console.log('');
88
+ }
86
89
  })();
package/lib/scaffold.js CHANGED
@@ -20,7 +20,9 @@ function validateProjectName(name) {
20
20
  return null;
21
21
  }
22
22
 
23
- const COPY_EXCLUDE = new Set(['node_modules', 'dist', '.git', '.npmignore']);
23
+ // README.minimal.md 최소(N) 구성 전용 README 소스 — 생성 프로젝트에 그대로 복사하지 않고
24
+ // scaffold() 가 최소 모드일 때만 README.md 로 사용한다.
25
+ const COPY_EXCLUDE = new Set(['node_modules', 'dist', '.git', '.npmignore', 'README.minimal.md']);
24
26
 
25
27
  /**
26
28
  * 디렉토리를 재귀적으로 복사한다.
@@ -118,6 +120,12 @@ function scaffold(projectName, targetDir, templateDir, options = {}) {
118
120
  // 테스트 미포함 선택 시 최소 구성으로 정리
119
121
  if (options.includeTests === false) {
120
122
  pruneTestArtifacts(targetDir);
123
+ // 풀 README(예제·테스트 중심)는 최소 구성과 맞지 않으므로 전용 README 로 교체.
124
+ // 모듈 가이드(MYSQL/STORAGE/DOCDB/SECURITY.md)는 확장 시 참고용으로 그대로 유지된다.
125
+ const minReadme = path.join(templateDir, 'README.minimal.md');
126
+ if (fs.existsSync(minReadme)) {
127
+ fs.copyFileSync(minReadme, path.join(targetDir, 'README.md'));
128
+ }
121
129
  }
122
130
 
123
131
  // package.json name 업데이트
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axyl-tcb/create-template",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "Axyl TCB Cloud Function 프로젝트 스캐폴딩 CLI (npm create @axyl-tcb/template)",
5
5
  "bin": {
6
6
  "create-template": "bin/index.js"
@@ -0,0 +1,63 @@
1
+ # <project-name>
2
+
3
+ TCB(Tencent CloudBase) Cloud Function 프로젝트 — **최소 구성**입니다.
4
+ `@axyl-tcb/middleware` 기반 기본 핸들러(`src/functions/basic/index.ts`) 하나로 시작합니다.
5
+
6
+ ## 빠른 시작
7
+
8
+ ```bash
9
+ npm install
10
+ npm run build # src/functions 의 핸들러를 dist 로 번들
11
+ ```
12
+
13
+ > 예제(MySQL·Storage·Document DB)와 테스트까지 포함한 풀 구성이 필요하면
14
+ > `npm create @axyl-tcb/template` 실행 시 **테스트 포함(Y)** 을 선택해 다시 생성하세요.
15
+
16
+ ## 구조
17
+
18
+ ```
19
+ <project-name>/
20
+ ├── src/functions/basic/index.ts # 기본 AxylHandler (items 조회 예시)
21
+ ├── scripts/build.js · deploy.js
22
+ ├── cloudbaserc.json # TCB 배포 설정 + 환경변수 키
23
+ └── .env.example
24
+ ```
25
+
26
+ ## 핸들러 작성
27
+
28
+ ```ts
29
+ import { createAxylHandler, type AxylBaseHandler, type AxylHttpEvent } from '@axyl-tcb/middleware';
30
+ import { pool } from '@axyl-tcb/middleware/db'; // MySQL 사용 시
31
+
32
+ interface ResDto { ok: true }
33
+
34
+ const baseHandler: AxylBaseHandler<AxylHttpEvent, ResDto> = async (event, context) => {
35
+ // context.playerId / context.aud.gameIndex 는 검증 완료된 신뢰값
36
+ return { ok: true };
37
+ };
38
+
39
+ export const main = createAxylHandler(baseHandler);
40
+ ```
41
+
42
+ 새 함수는 `src/functions/<name>.ts` 로 추가하고 `cloudbaserc.json` 에 등록하면 됩니다(`npm run build` 가 자동 인식).
43
+
44
+ ## 모듈 가이드
45
+
46
+ | 모듈 | 사용법 | 비고 |
47
+ | --- | --- | --- |
48
+ | MySQL | [MYSQL.md](./MYSQL.md) | `mysql2` 포함됨 — 바로 사용 가능 |
49
+ | Cloud Storage | [STORAGE.md](./STORAGE.md) | `npm i @cloudbase/node-sdk` 후 `@axyl-tcb/middleware/storage` 사용 |
50
+ | Document DB | [DOCDB.md](./DOCDB.md) | `npm i @cloudbase/node-sdk` 후 `@axyl-tcb/middleware/docdb` 사용 |
51
+
52
+ > 최소 구성은 `@cloudbase/node-sdk` 를 포함하지 않아 `npm audit` 가 깨끗합니다. Storage/Document DB 를 추가하면 `@cloudbase/node-sdk` 의 알려진 전이 취약점(high)이 함께 들어옵니다 — 불가피하며 [SECURITY.md](./SECURITY.md) 에 설명돼 있습니다.
53
+
54
+ ## 배포
55
+
56
+ TCB(CloudBase) CLI 설치·로그인 후 배포합니다. 배포 대상 환경은 `cloudbaserc.json` 의 `envId` 로 지정됩니다.
57
+
58
+ ```bash
59
+ npm i -g @cloudbase/cli # tcb 명령 설치
60
+ tcb login # 최초 1회 인증
61
+ cp .env.example .env # DB/TCB 연결 정보 입력
62
+ npm run deploy:build # 빌드 + 배포
63
+ ```