@kood/claude-code 0.1.7 → 0.1.10
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/dist/index.js +137 -3
- package/package.json +8 -2
- package/templates/hono/CLAUDE.md +53 -326
- package/templates/hono/docs/architecture/architecture.md +93 -747
- package/templates/hono/docs/deployment/cloudflare.md +59 -513
- package/templates/hono/docs/deployment/docker.md +41 -356
- package/templates/hono/docs/deployment/index.md +49 -190
- package/templates/hono/docs/deployment/railway.md +36 -306
- package/templates/hono/docs/deployment/vercel.md +49 -434
- package/templates/hono/docs/library/ai-sdk/index.md +53 -290
- package/templates/hono/docs/library/ai-sdk/openrouter.md +19 -387
- package/templates/hono/docs/library/ai-sdk/providers.md +28 -394
- package/templates/hono/docs/library/ai-sdk/streaming.md +52 -353
- package/templates/hono/docs/library/ai-sdk/structured-output.md +63 -395
- package/templates/hono/docs/library/ai-sdk/tools.md +62 -431
- package/templates/hono/docs/library/hono/env-setup.md +24 -313
- package/templates/hono/docs/library/hono/error-handling.md +34 -295
- package/templates/hono/docs/library/hono/index.md +24 -122
- package/templates/hono/docs/library/hono/middleware.md +21 -188
- package/templates/hono/docs/library/hono/rpc.md +40 -341
- package/templates/hono/docs/library/hono/validation.md +35 -195
- package/templates/hono/docs/library/pino/index.md +42 -333
- package/templates/hono/docs/library/prisma/cloudflare-d1.md +64 -367
- package/templates/hono/docs/library/prisma/config.md +19 -260
- package/templates/hono/docs/library/prisma/index.md +64 -320
- package/templates/hono/docs/library/zod/index.md +53 -257
- package/templates/npx/CLAUDE.md +58 -276
- package/templates/npx/docs/references/patterns.md +160 -0
- package/templates/tanstack-start/CLAUDE.md +0 -4
- package/templates/tanstack-start/docs/architecture/architecture.md +44 -589
- package/templates/tanstack-start/docs/design/index.md +119 -12
- package/templates/tanstack-start/docs/guides/conventions.md +103 -0
- package/templates/tanstack-start/docs/guides/env-setup.md +34 -340
- package/templates/tanstack-start/docs/guides/getting-started.md +22 -209
- package/templates/tanstack-start/docs/guides/hooks.md +166 -0
- package/templates/tanstack-start/docs/guides/routes.md +166 -0
- package/templates/tanstack-start/docs/guides/services.md +143 -0
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +18 -2
- package/templates/tanstack-start/docs/library/zod/index.md +16 -1
- package/templates/tanstack-start/docs/design/accessibility.md +0 -163
- package/templates/tanstack-start/docs/design/color.md +0 -93
- package/templates/tanstack-start/docs/design/spacing.md +0 -122
- package/templates/tanstack-start/docs/design/typography.md +0 -80
- package/templates/tanstack-start/docs/guides/best-practices.md +0 -950
- package/templates/tanstack-start/docs/guides/husky-lint-staged.md +0 -303
- package/templates/tanstack-start/docs/guides/prettier.md +0 -189
- package/templates/tanstack-start/docs/guides/project-templates.md +0 -710
- package/templates/tanstack-start/docs/library/tanstack-query/setup.md +0 -48
- package/templates/tanstack-start/docs/library/zod/basic-types.md +0 -74
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
# Prisma - Config 파일
|
|
1
|
+
# Prisma - Config 파일
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
Prisma v7에서 도입된 `prisma.config.ts` 설정 파일입니다.
|
|
3
|
+
> prisma.config.ts 설정 (v7)
|
|
6
4
|
|
|
7
5
|
---
|
|
8
6
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
Multi-File 스키마를 사용하려면 **반드시** `prisma.config.ts`에서 스키마 폴더를 지정해야 합니다.
|
|
7
|
+
## Multi-File 스키마 필수 설정
|
|
12
8
|
|
|
13
9
|
```typescript
|
|
14
10
|
// prisma.config.ts
|
|
@@ -16,8 +12,7 @@ import path from 'node:path'
|
|
|
16
12
|
import { defineConfig, env } from 'prisma/config'
|
|
17
13
|
|
|
18
14
|
export default defineConfig({
|
|
19
|
-
|
|
20
|
-
schema: path.join('prisma', 'schema'),
|
|
15
|
+
schema: path.join('prisma', 'schema'), // 폴더 경로
|
|
21
16
|
datasource: {
|
|
22
17
|
url: env('DATABASE_URL'),
|
|
23
18
|
},
|
|
@@ -26,212 +21,62 @@ export default defineConfig({
|
|
|
26
21
|
|
|
27
22
|
---
|
|
28
23
|
|
|
29
|
-
## 파일 위치
|
|
30
|
-
|
|
31
|
-
### 지원되는 파일명
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
prisma.config.ts # 권장 (소규모 프로젝트)
|
|
35
|
-
prisma.config.js
|
|
36
|
-
prisma.config.mjs
|
|
37
|
-
prisma.config.cjs
|
|
38
|
-
prisma.config.mts
|
|
39
|
-
prisma.config.cts
|
|
40
|
-
|
|
41
|
-
.config/prisma.ts # 권장 (대규모 프로젝트)
|
|
42
|
-
.config/prisma.js
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### 권장 위치
|
|
24
|
+
## 파일 위치
|
|
46
25
|
|
|
47
26
|
```
|
|
48
27
|
프로젝트/
|
|
49
28
|
├── prisma.config.ts # 프로젝트 루트
|
|
50
29
|
├── prisma/
|
|
51
|
-
│ ├── schema/ # Multi-File 스키마
|
|
30
|
+
│ ├── schema/ # Multi-File 스키마
|
|
52
31
|
│ │ ├── +base.prisma
|
|
53
32
|
│ │ ├── +enum.prisma
|
|
54
33
|
│ │ └── user.prisma
|
|
55
|
-
│ └── migrations/
|
|
56
|
-
|
|
57
|
-
│ └── index.ts # Hono 앱 진입점
|
|
58
|
-
└── package.json
|
|
34
|
+
│ └── migrations/
|
|
35
|
+
└── src/
|
|
59
36
|
```
|
|
60
37
|
|
|
61
38
|
---
|
|
62
39
|
|
|
63
|
-
## 설정
|
|
64
|
-
|
|
65
|
-
### 전체 옵션 목록
|
|
66
|
-
|
|
67
|
-
| 옵션 | 타입 | 필수 | 설명 |
|
|
68
|
-
|------|------|------|------|
|
|
69
|
-
| `schema` | string | ❌ | 스키마 파일 또는 폴더 경로 |
|
|
70
|
-
| `datasource.url` | string | ✅ | 데이터베이스 연결 URL |
|
|
71
|
-
| `datasource.shadowDatabaseUrl` | string | ❌ | Shadow DB URL |
|
|
72
|
-
| `migrations.path` | string | ❌ | 마이그레이션 폴더 경로 |
|
|
73
|
-
| `migrations.seed` | string | ❌ | 시드 스크립트 명령어 |
|
|
74
|
-
| `migrations.initShadowDb` | string | ❌ | Shadow DB 초기화 SQL |
|
|
75
|
-
| `views.path` | string | ❌ | SQL 뷰 정의 폴더 |
|
|
76
|
-
| `typedSql.path` | string | ❌ | TypedSQL 파일 폴더 |
|
|
77
|
-
| `experimental` | object | ❌ | 실험적 기능 활성화 |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 기본 설정 예시
|
|
82
|
-
|
|
83
|
-
### defineConfig 사용 (권장)
|
|
40
|
+
## 전체 설정 예시
|
|
84
41
|
|
|
85
42
|
```typescript
|
|
86
43
|
// prisma.config.ts
|
|
87
44
|
import 'dotenv/config'
|
|
45
|
+
import path from 'node:path'
|
|
88
46
|
import { defineConfig, env } from 'prisma/config'
|
|
89
47
|
|
|
90
48
|
export default defineConfig({
|
|
91
|
-
|
|
92
|
-
schema: 'prisma/schema',
|
|
93
|
-
|
|
94
|
-
// 마이그레이션 설정
|
|
49
|
+
schema: path.join('prisma', 'schema'),
|
|
95
50
|
migrations: {
|
|
96
51
|
path: 'prisma/migrations',
|
|
97
52
|
seed: 'tsx prisma/seed.ts',
|
|
98
53
|
},
|
|
99
|
-
|
|
100
|
-
// 데이터베이스 연결
|
|
101
54
|
datasource: {
|
|
102
55
|
url: env('DATABASE_URL'),
|
|
103
56
|
},
|
|
104
57
|
})
|
|
105
58
|
```
|
|
106
59
|
|
|
107
|
-
### satisfies 사용
|
|
108
|
-
|
|
109
|
-
```typescript
|
|
110
|
-
// prisma.config.ts
|
|
111
|
-
import 'dotenv/config'
|
|
112
|
-
import type { PrismaConfig } from 'prisma'
|
|
113
|
-
import { env } from 'prisma/config'
|
|
114
|
-
|
|
115
|
-
export default {
|
|
116
|
-
schema: 'prisma/schema',
|
|
117
|
-
migrations: {
|
|
118
|
-
path: 'prisma/migrations',
|
|
119
|
-
seed: 'tsx prisma/seed.ts',
|
|
120
|
-
},
|
|
121
|
-
datasource: {
|
|
122
|
-
url: env('DATABASE_URL'),
|
|
123
|
-
},
|
|
124
|
-
} satisfies PrismaConfig
|
|
125
|
-
```
|
|
126
|
-
|
|
127
60
|
---
|
|
128
61
|
|
|
129
|
-
##
|
|
130
|
-
|
|
131
|
-
### 필수 설정
|
|
132
|
-
|
|
133
|
-
```typescript
|
|
134
|
-
// prisma.config.ts
|
|
135
|
-
import path from 'node:path'
|
|
136
|
-
import { defineConfig, env } from 'prisma/config'
|
|
137
|
-
|
|
138
|
-
export default defineConfig({
|
|
139
|
-
// ⚠️ 폴더 경로 지정 (파일이 아님!)
|
|
140
|
-
schema: path.join('prisma', 'schema'),
|
|
141
|
-
datasource: {
|
|
142
|
-
url: env('DATABASE_URL'),
|
|
143
|
-
},
|
|
144
|
-
})
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 폴더 구조
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
prisma/
|
|
151
|
-
├── schema/ # Multi-File 스키마 폴더
|
|
152
|
-
│ ├── +base.prisma # datasource, generator 설정
|
|
153
|
-
│ ├── +enum.prisma # 모든 enum 정의
|
|
154
|
-
│ ├── user.prisma # User 모델
|
|
155
|
-
│ ├── post.prisma # Post 모델
|
|
156
|
-
│ └── ...
|
|
157
|
-
└── migrations/ # ⚠️ datasource와 같은 레벨에 위치
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### +base.prisma 예시
|
|
62
|
+
## +base.prisma
|
|
161
63
|
|
|
162
64
|
```prisma
|
|
163
65
|
// prisma/schema/+base.prisma
|
|
164
|
-
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
165
|
-
// Prisma 기본 설정 파일
|
|
166
|
-
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
167
|
-
|
|
168
|
-
// 데이터베이스 연결 설정
|
|
169
66
|
datasource db {
|
|
170
67
|
provider = "postgresql"
|
|
171
68
|
url = env("DATABASE_URL")
|
|
172
69
|
}
|
|
173
70
|
|
|
174
|
-
// Prisma Client 생성 설정
|
|
175
71
|
generator client {
|
|
176
|
-
provider = "prisma-client" //
|
|
72
|
+
provider = "prisma-client" // v7 필수
|
|
177
73
|
output = "../../generated/prisma"
|
|
178
74
|
}
|
|
179
75
|
```
|
|
180
76
|
|
|
181
77
|
---
|
|
182
78
|
|
|
183
|
-
##
|
|
184
|
-
|
|
185
|
-
### dotenv 설치
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
npm install dotenv
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### 환경 변수 사용
|
|
192
|
-
|
|
193
|
-
```typescript
|
|
194
|
-
// prisma.config.ts
|
|
195
|
-
import 'dotenv/config' // ⚠️ 반드시 최상단에 import
|
|
196
|
-
import { defineConfig, env } from 'prisma/config'
|
|
197
|
-
|
|
198
|
-
export default defineConfig({
|
|
199
|
-
schema: 'prisma/schema',
|
|
200
|
-
datasource: {
|
|
201
|
-
url: env('DATABASE_URL'), // 타입 안전한 환경 변수 접근
|
|
202
|
-
},
|
|
203
|
-
})
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### .env 파일
|
|
207
|
-
|
|
208
|
-
```env
|
|
209
|
-
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 마이그레이션 설정
|
|
215
|
-
|
|
216
|
-
### 시드 스크립트
|
|
217
|
-
|
|
218
|
-
```typescript
|
|
219
|
-
// prisma.config.ts
|
|
220
|
-
import { defineConfig, env } from 'prisma/config'
|
|
221
|
-
|
|
222
|
-
export default defineConfig({
|
|
223
|
-
schema: 'prisma/schema',
|
|
224
|
-
migrations: {
|
|
225
|
-
path: 'prisma/migrations',
|
|
226
|
-
seed: 'tsx prisma/seed.ts', // 시드 명령어
|
|
227
|
-
},
|
|
228
|
-
datasource: {
|
|
229
|
-
url: env('DATABASE_URL'),
|
|
230
|
-
},
|
|
231
|
-
})
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### 시드 파일 예시
|
|
79
|
+
## 시드 스크립트
|
|
235
80
|
|
|
236
81
|
```typescript
|
|
237
82
|
// prisma/seed.ts
|
|
@@ -240,12 +85,8 @@ import { PrismaClient } from '../generated/prisma'
|
|
|
240
85
|
const prisma = new PrismaClient()
|
|
241
86
|
|
|
242
87
|
async function main() {
|
|
243
|
-
// 초기 데이터 생성
|
|
244
88
|
await prisma.user.create({
|
|
245
|
-
data: {
|
|
246
|
-
email: 'admin@example.com',
|
|
247
|
-
name: '관리자',
|
|
248
|
-
},
|
|
89
|
+
data: { email: 'admin@example.com', name: '관리자' },
|
|
249
90
|
})
|
|
250
91
|
}
|
|
251
92
|
|
|
@@ -256,107 +97,25 @@ main()
|
|
|
256
97
|
|
|
257
98
|
---
|
|
258
99
|
|
|
259
|
-
## Cloudflare Workers
|
|
260
|
-
|
|
261
|
-
Cloudflare Workers/D1 환경에서는 추가 설정이 필요합니다.
|
|
262
|
-
|
|
263
|
-
```typescript
|
|
264
|
-
// prisma.config.ts
|
|
265
|
-
import { defineConfig, env } from 'prisma/config'
|
|
266
|
-
|
|
267
|
-
export default defineConfig({
|
|
268
|
-
schema: 'prisma/schema',
|
|
269
|
-
datasource: {
|
|
270
|
-
url: env('DATABASE_URL'),
|
|
271
|
-
},
|
|
272
|
-
})
|
|
273
|
-
```
|
|
100
|
+
## Cloudflare Workers
|
|
274
101
|
|
|
275
102
|
```prisma
|
|
276
103
|
// prisma/schema/+base.prisma
|
|
277
104
|
generator client {
|
|
278
105
|
provider = "prisma-client"
|
|
279
106
|
output = "../../generated/prisma"
|
|
280
|
-
runtime = "workerd" //
|
|
107
|
+
runtime = "workerd" // Workers 런타임
|
|
281
108
|
}
|
|
282
109
|
|
|
283
110
|
datasource db {
|
|
284
|
-
provider = "sqlite" // D1은 SQLite
|
|
111
|
+
provider = "sqlite" // D1은 SQLite
|
|
285
112
|
url = env("DATABASE_URL")
|
|
286
113
|
}
|
|
287
114
|
```
|
|
288
115
|
|
|
289
116
|
---
|
|
290
117
|
|
|
291
|
-
## 경로 해석 규칙
|
|
292
|
-
|
|
293
|
-
### 중요 사항
|
|
294
|
-
|
|
295
|
-
- 모든 경로는 **config 파일 위치 기준**으로 해석됩니다
|
|
296
|
-
- CLI 명령어 실행 위치가 아닙니다!
|
|
297
|
-
|
|
298
|
-
### 예시
|
|
299
|
-
|
|
300
|
-
```
|
|
301
|
-
프로젝트/
|
|
302
|
-
├── prisma.config.ts # 여기가 기준!
|
|
303
|
-
├── prisma/
|
|
304
|
-
│ └── schema/
|
|
305
|
-
└── src/
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
```typescript
|
|
309
|
-
// prisma.config.ts
|
|
310
|
-
export default defineConfig({
|
|
311
|
-
// ✅ prisma.config.ts 기준 상대 경로
|
|
312
|
-
schema: 'prisma/schema',
|
|
313
|
-
|
|
314
|
-
// ❌ 이렇게 하지 마세요
|
|
315
|
-
schema: './prisma/schema', // ./ 불필요
|
|
316
|
-
})
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### 커스텀 경로 지정
|
|
320
|
-
|
|
321
|
-
```bash
|
|
322
|
-
# --config 플래그로 config 파일 위치 지정
|
|
323
|
-
npx prisma validate --config ./path/to/myconfig.ts
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
---
|
|
327
|
-
|
|
328
|
-
## 전체 설정 예시
|
|
329
|
-
|
|
330
|
-
```typescript
|
|
331
|
-
// prisma.config.ts
|
|
332
|
-
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
333
|
-
// Prisma v7 설정 파일
|
|
334
|
-
// Multi-File 스키마 및 마이그레이션 설정
|
|
335
|
-
// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
336
|
-
import 'dotenv/config'
|
|
337
|
-
import path from 'node:path'
|
|
338
|
-
import { defineConfig, env } from 'prisma/config'
|
|
339
|
-
|
|
340
|
-
export default defineConfig({
|
|
341
|
-
// Multi-File 스키마 폴더
|
|
342
|
-
schema: path.join('prisma', 'schema'),
|
|
343
|
-
|
|
344
|
-
// 마이그레이션 설정
|
|
345
|
-
migrations: {
|
|
346
|
-
path: 'prisma/migrations',
|
|
347
|
-
seed: 'tsx prisma/seed.ts',
|
|
348
|
-
},
|
|
349
|
-
|
|
350
|
-
// 데이터베이스 연결
|
|
351
|
-
datasource: {
|
|
352
|
-
url: env('DATABASE_URL'),
|
|
353
|
-
},
|
|
354
|
-
})
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
118
|
## 관련 문서
|
|
360
119
|
|
|
361
|
-
- [Prisma
|
|
120
|
+
- [Prisma 개요](./index.md)
|
|
362
121
|
- [Cloudflare D1](./cloudflare-d1.md)
|