create-velox-app 0.6.26 → 0.6.29
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/CHANGELOG.md +384 -0
- package/GUIDE.md +58 -0
- package/dist/cli.js +74 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/templates/auth.d.ts.map +1 -1
- package/dist/templates/auth.js +9 -8
- package/dist/templates/auth.js.map +1 -1
- package/dist/templates/compiler.js +1 -1
- package/dist/templates/compiler.js.map +1 -1
- package/dist/templates/placeholders.d.ts +25 -2
- package/dist/templates/placeholders.d.ts.map +1 -1
- package/dist/templates/placeholders.js +109 -3
- package/dist/templates/placeholders.js.map +1 -1
- package/dist/templates/rsc.d.ts.map +1 -1
- package/dist/templates/rsc.js +9 -8
- package/dist/templates/rsc.js.map +1 -1
- package/dist/templates/spa.d.ts.map +1 -1
- package/dist/templates/spa.js +9 -8
- package/dist/templates/spa.js.map +1 -1
- package/dist/templates/trpc.d.ts.map +1 -1
- package/dist/templates/trpc.js +9 -8
- package/dist/templates/trpc.js.map +1 -1
- package/dist/templates/types.d.ts.map +1 -1
- package/dist/templates/types.js +1 -2
- package/dist/templates/types.js.map +1 -1
- package/package.json +9 -3
- package/src/templates/source/api/config/database.ts +76 -0
- package/src/templates/source/api/env.auth +1 -4
- package/src/templates/source/api/env.default +1 -4
- package/src/templates/source/api/prisma/schema.auth.prisma +1 -2
- package/src/templates/source/api/prisma/schema.default.prisma +1 -2
- package/src/templates/source/api/procedures/auth.ts +2 -2
- package/src/templates/source/api/procedures/health.ts +2 -2
- package/src/templates/source/api/procedures/users.auth.ts +2 -2
- package/src/templates/source/api/procedures/users.default.ts +2 -8
- package/src/templates/source/root/.cursorrules +3 -3
- package/src/templates/source/root/CLAUDE.auth.md +2 -2
- package/src/templates/source/root/CLAUDE.default.md +2 -2
- package/src/templates/source/rsc/env.example +1 -1
- package/src/templates/source/rsc/prisma/schema.prisma +1 -1
- package/src/templates/source/rsc/src/api/database.ts +76 -0
- package/src/templates/source/rsc/src/api/procedures/health.ts +2 -2
- package/src/templates/source/rsc/src/api/procedures/posts.ts +2 -2
- package/src/templates/source/rsc/src/api/procedures/users.ts +2 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
# create-velox-app
|
|
2
|
+
|
|
3
|
+
## 0.6.29
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- add multi-tenancy and PostgreSQL support - test and lint fix
|
|
8
|
+
|
|
9
|
+
## 0.6.28
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- add multi-tenancy support and postgresql database
|
|
14
|
+
|
|
15
|
+
## 0.6.27
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- chore: add GUIDE, LICENSE and CHANGELOG.md to npm files
|
|
20
|
+
|
|
21
|
+
## 0.6.26
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- docs(mcp): add README and GUIDE, docs(web): simplify README and create concise GUIDE
|
|
26
|
+
|
|
27
|
+
## 0.6.25
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- docs(create): add guide for React Server Components setup
|
|
32
|
+
|
|
33
|
+
## 0.6.24
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- clarify installation paths and package contents
|
|
38
|
+
|
|
39
|
+
## 0.6.23
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- add defineContract for improved type inference DX
|
|
44
|
+
|
|
45
|
+
## 0.6.22
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- support {method, path} route entry format
|
|
50
|
+
|
|
51
|
+
## 0.6.21
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- separate schemas from procedures for browser-safe import
|
|
56
|
+
|
|
57
|
+
## 0.6.20
|
|
58
|
+
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- add Fastify ecosystem stubs and debuglog to util
|
|
62
|
+
|
|
63
|
+
## 0.6.19
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- restore dotenv stub for browser compatibility
|
|
68
|
+
|
|
69
|
+
## 0.6.18
|
|
70
|
+
|
|
71
|
+
### Patch Changes
|
|
72
|
+
|
|
73
|
+
- add node:fs/promises stub and fix esbuild plugin
|
|
74
|
+
|
|
75
|
+
## 0.6.17
|
|
76
|
+
|
|
77
|
+
### Patch Changes
|
|
78
|
+
|
|
79
|
+
- remove optimizeDeps.exclude to fix CJS/ESM interop
|
|
80
|
+
|
|
81
|
+
## 0.6.16
|
|
82
|
+
|
|
83
|
+
### Patch Changes
|
|
84
|
+
|
|
85
|
+
- add stubs for Fastify ecosystem packages
|
|
86
|
+
|
|
87
|
+
## 0.6.15
|
|
88
|
+
|
|
89
|
+
### Patch Changes
|
|
90
|
+
|
|
91
|
+
- implement three-layer Node.js stubbing for Vite
|
|
92
|
+
|
|
93
|
+
## 0.6.14
|
|
94
|
+
|
|
95
|
+
### Patch Changes
|
|
96
|
+
|
|
97
|
+
- stub dotenv as virtual module instead of process shims
|
|
98
|
+
|
|
99
|
+
## 0.6.13
|
|
100
|
+
|
|
101
|
+
### Patch Changes
|
|
102
|
+
|
|
103
|
+
- add process.argv stub for dotenv browser compatibility
|
|
104
|
+
|
|
105
|
+
## 0.6.12
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- Fixes the "process is not defined" error from dotenv
|
|
110
|
+
|
|
111
|
+
## 0.6.11
|
|
112
|
+
|
|
113
|
+
### Patch Changes
|
|
114
|
+
|
|
115
|
+
- add Vite plugin for Node.js module stubs
|
|
116
|
+
|
|
117
|
+
## 0.6.10
|
|
118
|
+
|
|
119
|
+
### Patch Changes
|
|
120
|
+
|
|
121
|
+
- use import() type syntax for AppRouter
|
|
122
|
+
|
|
123
|
+
## 0.6.9
|
|
124
|
+
|
|
125
|
+
### Patch Changes
|
|
126
|
+
|
|
127
|
+
- isolate auth procedures from database imports
|
|
128
|
+
|
|
129
|
+
## 0.6.8
|
|
130
|
+
|
|
131
|
+
### Patch Changes
|
|
132
|
+
|
|
133
|
+
- prevent dotenv from leaking into browser bundle
|
|
134
|
+
|
|
135
|
+
## 0.6.7
|
|
136
|
+
|
|
137
|
+
### Patch Changes
|
|
138
|
+
|
|
139
|
+
- better-sqlite3 versions mismatch fix
|
|
140
|
+
|
|
141
|
+
## 0.6.6
|
|
142
|
+
|
|
143
|
+
### Patch Changes
|
|
144
|
+
|
|
145
|
+
- ensure the web app never imports server-side code paths
|
|
146
|
+
|
|
147
|
+
## 0.6.5
|
|
148
|
+
|
|
149
|
+
### Patch Changes
|
|
150
|
+
|
|
151
|
+
- move @prisma/client-runtime-utils to root package.json
|
|
152
|
+
|
|
153
|
+
## 0.6.4
|
|
154
|
+
|
|
155
|
+
### Patch Changes
|
|
156
|
+
|
|
157
|
+
- add @prisma/client-runtime-utils dependency
|
|
158
|
+
|
|
159
|
+
## 0.6.3
|
|
160
|
+
|
|
161
|
+
### Patch Changes
|
|
162
|
+
|
|
163
|
+
- Add workspaces field to root package.json template + Fix Prisma ESM/CJS import for Node.js v24
|
|
164
|
+
|
|
165
|
+
## 0.6.2
|
|
166
|
+
|
|
167
|
+
### Patch Changes
|
|
168
|
+
|
|
169
|
+
- add server actions, removed some deprecated and other chore
|
|
170
|
+
|
|
171
|
+
## 0.6.1
|
|
172
|
+
|
|
173
|
+
### Patch Changes
|
|
174
|
+
|
|
175
|
+
- route groups for file-based routing; add dynamic route support with [param] segments
|
|
176
|
+
|
|
177
|
+
## 0.6.0
|
|
178
|
+
|
|
179
|
+
### Minor Changes
|
|
180
|
+
|
|
181
|
+
- RSC streaming, dynamic routes, Vinxi integration
|
|
182
|
+
|
|
183
|
+
## 0.5.0
|
|
184
|
+
|
|
185
|
+
### Minor Changes
|
|
186
|
+
|
|
187
|
+
- Auto-register procedures + inject Prisma models feature
|
|
188
|
+
|
|
189
|
+
## 0.4.21
|
|
190
|
+
|
|
191
|
+
### Patch Changes
|
|
192
|
+
|
|
193
|
+
- format Prisma default values correctly by type
|
|
194
|
+
|
|
195
|
+
## 0.4.20
|
|
196
|
+
|
|
197
|
+
### Patch Changes
|
|
198
|
+
|
|
199
|
+
- import consolidation: update import paths for `@veloxts/velox`
|
|
200
|
+
|
|
201
|
+
## 0.4.19
|
|
202
|
+
|
|
203
|
+
### Patch Changes
|
|
204
|
+
|
|
205
|
+
- update default dev server port to 3030
|
|
206
|
+
|
|
207
|
+
## 0.4.18
|
|
208
|
+
|
|
209
|
+
### Patch Changes
|
|
210
|
+
|
|
211
|
+
- introduce interactive field menu and templates for resource generation
|
|
212
|
+
|
|
213
|
+
## 0.4.17
|
|
214
|
+
|
|
215
|
+
### Patch Changes
|
|
216
|
+
|
|
217
|
+
- add interactive field prompts for resource generation
|
|
218
|
+
|
|
219
|
+
## 0.4.16
|
|
220
|
+
|
|
221
|
+
### Patch Changes
|
|
222
|
+
|
|
223
|
+
- fixed velox procedures list
|
|
224
|
+
|
|
225
|
+
## 0.4.15
|
|
226
|
+
|
|
227
|
+
### Patch Changes
|
|
228
|
+
|
|
229
|
+
- chore lint fixes
|
|
230
|
+
|
|
231
|
+
## 0.4.14
|
|
232
|
+
|
|
233
|
+
### Patch Changes
|
|
234
|
+
|
|
235
|
+
- fixed proxy-type inferance and update proxy hooks for optional input handling
|
|
236
|
+
|
|
237
|
+
## 0.4.13
|
|
238
|
+
|
|
239
|
+
### Patch Changes
|
|
240
|
+
|
|
241
|
+
- add debug mode to dev server
|
|
242
|
+
|
|
243
|
+
## 0.4.12
|
|
244
|
+
|
|
245
|
+
### Patch Changes
|
|
246
|
+
|
|
247
|
+
- preserve type info in trpc template AppRouter export
|
|
248
|
+
|
|
249
|
+
## 0.4.11
|
|
250
|
+
|
|
251
|
+
### Patch Changes
|
|
252
|
+
|
|
253
|
+
- fixed api.health.check.useQuery is not a function issue
|
|
254
|
+
|
|
255
|
+
## 0.4.10
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- fixed ReferenceError: styles is not defined in rpc template
|
|
260
|
+
|
|
261
|
+
## 0.4.7
|
|
262
|
+
|
|
263
|
+
### Patch Changes
|
|
264
|
+
|
|
265
|
+
- Add dynamic headers and routes config to client
|
|
266
|
+
|
|
267
|
+
## 0.4.6
|
|
268
|
+
|
|
269
|
+
### Patch Changes
|
|
270
|
+
|
|
271
|
+
- Fix broken npm packages - republish with correct dependencies
|
|
272
|
+
|
|
273
|
+
## 0.4.5
|
|
274
|
+
|
|
275
|
+
### Patch Changes
|
|
276
|
+
|
|
277
|
+
- b06631b: CI CD npm Trusted Publishing setup
|
|
278
|
+
|
|
279
|
+
## 0.4.4
|
|
280
|
+
|
|
281
|
+
### Patch Changes
|
|
282
|
+
|
|
283
|
+
- 05ae1a5: Update to boilerplate, work in progress
|
|
284
|
+
- 9961b52: full-stack React frontend implementation
|
|
285
|
+
|
|
286
|
+
## 0.4.3
|
|
287
|
+
|
|
288
|
+
### Patch Changes
|
|
289
|
+
|
|
290
|
+
- ef8d5d0: Dynamically load VeloxTS version from `package.json` in shared template configuration
|
|
291
|
+
|
|
292
|
+
## 0.4.2
|
|
293
|
+
|
|
294
|
+
### Patch Changes
|
|
295
|
+
|
|
296
|
+
- 5b4f02c: Updated documentations
|
|
297
|
+
- 0d8d775: Updated guides and readme files
|
|
298
|
+
|
|
299
|
+
## 0.4.1
|
|
300
|
+
|
|
301
|
+
### Patch Changes
|
|
302
|
+
|
|
303
|
+
- 0eea918: Completed CLI generators
|
|
304
|
+
|
|
305
|
+
## 0.4.0
|
|
306
|
+
|
|
307
|
+
### Minor Changes
|
|
308
|
+
|
|
309
|
+
- b478fee: Performance Benchmarks | 34k req/s, <1ms p50 latency, 75MB memory, 530ms startup
|
|
310
|
+
|
|
311
|
+
## 0.3.6
|
|
312
|
+
|
|
313
|
+
### Patch Changes
|
|
314
|
+
|
|
315
|
+
- 929f2ab: Interactive CLI setup
|
|
316
|
+
|
|
317
|
+
## 0.3.5
|
|
318
|
+
|
|
319
|
+
### Patch Changes
|
|
320
|
+
|
|
321
|
+
- 658e83f: @veloxts/auth, Full REST Support, Better error messages, Type tests with tsd
|
|
322
|
+
|
|
323
|
+
## 0.3.4
|
|
324
|
+
|
|
325
|
+
### Patch Changes
|
|
326
|
+
|
|
327
|
+
- 65ef3e7: DI container and Auth Guards
|
|
328
|
+
|
|
329
|
+
## 0.3.3
|
|
330
|
+
|
|
331
|
+
### Patch Changes
|
|
332
|
+
|
|
333
|
+
- 4ee103b: Full REST support PUT, PATCH and DELETE
|
|
334
|
+
|
|
335
|
+
## 0.3.2
|
|
336
|
+
|
|
337
|
+
### Patch Changes
|
|
338
|
+
|
|
339
|
+
- abf270e: Dynamically set core `VELOX_VERSION` from package.json
|
|
340
|
+
|
|
341
|
+
## 0.3.1
|
|
342
|
+
|
|
343
|
+
### Patch Changes
|
|
344
|
+
|
|
345
|
+
- cb9806e: Fixed the value for VELOXTS_VERSION in create app template
|
|
346
|
+
|
|
347
|
+
## 0.3.0
|
|
348
|
+
|
|
349
|
+
### Minor Changes
|
|
350
|
+
|
|
351
|
+
- 1adce10: Introduced an umbrella package for server side packages: @veloxts/velox
|
|
352
|
+
|
|
353
|
+
## 0.2.2
|
|
354
|
+
|
|
355
|
+
### Patch Changes
|
|
356
|
+
|
|
357
|
+
- 9b1d71d: Fix: Add better-sqlite3 as direct dependency and postinstall script for native module compilation
|
|
358
|
+
|
|
359
|
+
- Added `better-sqlite3` as a direct dependency to ensure pnpm compiles native bindings
|
|
360
|
+
- Added `postinstall` script to run `prisma generate` automatically after install
|
|
361
|
+
|
|
362
|
+
## 0.2.1
|
|
363
|
+
|
|
364
|
+
### Patch Changes
|
|
365
|
+
|
|
366
|
+
- b577801: Fix: include dist folder in published package
|
|
367
|
+
|
|
368
|
+
## 0.2.0
|
|
369
|
+
|
|
370
|
+
### Minor Changes
|
|
371
|
+
|
|
372
|
+
- 9404976: fix Prisma client generation. README adjustments
|
|
373
|
+
|
|
374
|
+
## 0.1.1
|
|
375
|
+
|
|
376
|
+
### Patch Changes
|
|
377
|
+
|
|
378
|
+
- Fix Prisma client generation in scaffolder
|
|
379
|
+
|
|
380
|
+
- Added automatic Prisma client generation after dependency installation in create-velox-app
|
|
381
|
+
- Fixed database template to validate DATABASE_URL environment variable
|
|
382
|
+
- Added alpha release warning to all package READMEs
|
|
383
|
+
- Fixed TypeScript type for registerTRPCPlugin to accept FastifyInstance
|
|
384
|
+
- Updated playground app to use Prisma 7.x custom output path
|
package/GUIDE.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# create-velox-app
|
|
2
|
+
|
|
3
|
+
Interactive project scaffolder for VeloxTS Framework.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx create-velox-app my-app
|
|
9
|
+
cd my-app
|
|
10
|
+
npm run db:push
|
|
11
|
+
npm run dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Your app will be running at `http://localhost:3030`
|
|
15
|
+
|
|
16
|
+
## Templates
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx create-velox-app my-app # Default REST API
|
|
20
|
+
npx create-velox-app my-app --auth # With authentication
|
|
21
|
+
npx create-velox-app my-app --trpc # tRPC-only setup
|
|
22
|
+
npx create-velox-app my-app --rsc # Full-stack setup with React Server Components
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Project Structure
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
my-app/
|
|
29
|
+
├── src/
|
|
30
|
+
│ ├── procedures/ # API endpoints
|
|
31
|
+
│ ├── schemas/ # Zod validation
|
|
32
|
+
│ └── index.ts # Entry point
|
|
33
|
+
├── prisma/
|
|
34
|
+
│ └── schema.prisma # Database schema
|
|
35
|
+
└── package.json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Available Scripts
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm run dev # Development server with HMR
|
|
42
|
+
npm run build # Build for production
|
|
43
|
+
npm run db:push # Push database schema
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Test Endpoints
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
curl http://localhost:3030/api/health
|
|
50
|
+
curl http://localhost:3030/api/users
|
|
51
|
+
curl -X POST http://localhost:3030/api/users \
|
|
52
|
+
-H "Content-Type: application/json" \
|
|
53
|
+
-d '{"name": "Alice", "email": "alice@example.com"}'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Learn More
|
|
57
|
+
|
|
58
|
+
See [@veloxts/velox](https://www.npmjs.com/package/@veloxts/velox) for complete documentation.
|
package/dist/cli.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Handles command-line arguments and initiates the scaffolding process.
|
|
7
7
|
*/
|
|
8
8
|
import { CREATE_VERSION, createVeloxApp } from './index.js';
|
|
9
|
-
import { getAvailableTemplates, TEMPLATE_METADATA } from './templates/index.js';
|
|
9
|
+
import { DATABASE_METADATA, getAvailableDatabases, getAvailableTemplates, isDatabaseAvailable, isValidDatabase, TEMPLATE_METADATA, } from './templates/index.js';
|
|
10
10
|
import { resolveTemplateAlias, TEMPLATE_ALIASES } from './templates/types.js';
|
|
11
11
|
// ============================================================================
|
|
12
12
|
// Constants
|
|
@@ -17,6 +17,13 @@ function getTemplateNames() {
|
|
|
17
17
|
const aliases = Object.keys(TEMPLATE_ALIASES);
|
|
18
18
|
return [...templates, ...aliases].join(', ');
|
|
19
19
|
}
|
|
20
|
+
/** Get list of available database names for error messages */
|
|
21
|
+
function getDatabaseNames() {
|
|
22
|
+
return getAvailableDatabases()
|
|
23
|
+
.filter((db) => !db.disabled)
|
|
24
|
+
.map((db) => db.type)
|
|
25
|
+
.join(', ');
|
|
26
|
+
}
|
|
20
27
|
// ============================================================================
|
|
21
28
|
// Help & Version
|
|
22
29
|
// ============================================================================
|
|
@@ -30,6 +37,8 @@ Usage:
|
|
|
30
37
|
Options:
|
|
31
38
|
-t, --template <name> Template to use (default: "spa")
|
|
32
39
|
Available: ${getTemplateNames()}
|
|
40
|
+
-d, --database <name> Database to use (default: "sqlite")
|
|
41
|
+
Available: ${getDatabaseNames()}
|
|
33
42
|
-h, --help Show this help message
|
|
34
43
|
-v, --version Show version number
|
|
35
44
|
|
|
@@ -39,15 +48,20 @@ Templates:
|
|
|
39
48
|
trpc ${TEMPLATE_METADATA.trpc.description}
|
|
40
49
|
rsc ${TEMPLATE_METADATA.rsc.description}
|
|
41
50
|
|
|
51
|
+
Databases:
|
|
52
|
+
sqlite ${DATABASE_METADATA.sqlite.hint}
|
|
53
|
+
postgresql ${DATABASE_METADATA.postgresql.hint}
|
|
54
|
+
|
|
42
55
|
Aliases:
|
|
43
56
|
default → spa (backward compatible)
|
|
44
57
|
fullstack → rsc (backward compatible)
|
|
45
58
|
|
|
46
59
|
Examples:
|
|
47
|
-
npx create-velox-app my-app
|
|
48
|
-
npx create-velox-app my-app --template=spa
|
|
49
|
-
npx create-velox-app my-app --
|
|
50
|
-
npx create-velox-app
|
|
60
|
+
npx create-velox-app my-app # Interactive mode
|
|
61
|
+
npx create-velox-app my-app --template=spa # SPA + API template
|
|
62
|
+
npx create-velox-app my-app --database=postgresql # Use PostgreSQL
|
|
63
|
+
npx create-velox-app my-app -t rsc -d postgresql # RSC with PostgreSQL
|
|
64
|
+
npx create-velox-app # Prompt for name
|
|
51
65
|
`;
|
|
52
66
|
function parseArgs(args) {
|
|
53
67
|
const result = {
|
|
@@ -56,6 +70,7 @@ function parseArgs(args) {
|
|
|
56
70
|
};
|
|
57
71
|
const unexpectedArgs = [];
|
|
58
72
|
let templateFlagSeen = false;
|
|
73
|
+
let databaseFlagSeen = false;
|
|
59
74
|
for (let i = 0; i < args.length; i++) {
|
|
60
75
|
const arg = args[i];
|
|
61
76
|
// Handle --help / -h
|
|
@@ -115,6 +130,59 @@ function parseArgs(args) {
|
|
|
115
130
|
}
|
|
116
131
|
continue;
|
|
117
132
|
}
|
|
133
|
+
// Handle --database=<value> or -d=<value>
|
|
134
|
+
if (arg.startsWith('--database=') || arg.startsWith('-d=')) {
|
|
135
|
+
// Check for duplicate flag
|
|
136
|
+
if (databaseFlagSeen) {
|
|
137
|
+
console.error('Error: --database flag specified multiple times');
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
databaseFlagSeen = true;
|
|
141
|
+
const value = arg.split('=')[1];
|
|
142
|
+
if (!value) {
|
|
143
|
+
console.error(`Error: --database requires a value. Available: ${getDatabaseNames()}`);
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
if (isValidDatabase(value)) {
|
|
147
|
+
if (!isDatabaseAvailable(value)) {
|
|
148
|
+
console.error(`Database "${value}" is not yet available. Available: ${getDatabaseNames()}`);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
result.database = value;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.error(`Invalid database: ${value}. Available: ${getDatabaseNames()}`);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
// Handle --database <value> or -d <value>
|
|
160
|
+
if (arg === '--database' || arg === '-d') {
|
|
161
|
+
// Check for duplicate flag
|
|
162
|
+
if (databaseFlagSeen) {
|
|
163
|
+
console.error('Error: --database flag specified multiple times');
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
166
|
+
databaseFlagSeen = true;
|
|
167
|
+
const value = args[i + 1];
|
|
168
|
+
if (!value || value.startsWith('-')) {
|
|
169
|
+
console.error(`Error: --database requires a value. Available: ${getDatabaseNames()}`);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
if (isValidDatabase(value)) {
|
|
173
|
+
if (!isDatabaseAvailable(value)) {
|
|
174
|
+
console.error(`Database "${value}" is not yet available. Available: ${getDatabaseNames()}`);
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
result.database = value;
|
|
178
|
+
i++; // Skip next arg
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
console.error(`Invalid database: ${value}. Available: ${getDatabaseNames()}`);
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
118
186
|
// Non-flag argument
|
|
119
187
|
if (!arg.startsWith('-')) {
|
|
120
188
|
if (!result.projectName) {
|
|
@@ -153,7 +221,7 @@ async function main() {
|
|
|
153
221
|
process.exit(0);
|
|
154
222
|
}
|
|
155
223
|
// Run scaffolder
|
|
156
|
-
await createVeloxApp(parsed.projectName, parsed.template);
|
|
224
|
+
await createVeloxApp(parsed.projectName, parsed.template, parsed.database);
|
|
157
225
|
}
|
|
158
226
|
catch (error) {
|
|
159
227
|
// Handle unexpected errors with actionable guidance
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,8DAA8D;AAC9D,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,8DAA8D;AAC9D,SAAS,gBAAgB;IACvB,OAAO,qBAAqB,EAAE;SAC3B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;SAC5B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,SAAS,GAAG;oBACE,cAAc;;;;;;;;sCAQI,gBAAgB,EAAE;;sCAElB,gBAAgB,EAAE;;;;;eAKzC,iBAAiB,CAAC,GAAG,CAAC,WAAW;eACjC,iBAAiB,CAAC,IAAI,CAAC,WAAW;eAClC,iBAAiB,CAAC,IAAI,CAAC,WAAW;eAClC,iBAAiB,CAAC,GAAG,CAAC,WAAW;;;eAGjC,iBAAiB,CAAC,MAAM,CAAC,IAAI;eAC7B,iBAAiB,CAAC,UAAU,CAAC,IAAI;;;;;;;;;;;;CAY/C,CAAC;AAcF,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAe;QACzB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,qBAAqB;QACrB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACzC,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC3B,CAAC,EAAE,CAAC,CAAC,gBAAgB;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CACX,aAAa,KAAK,sCAAsC,gBAAgB,EAAE,EAAE,CAC7E,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACzC,2BAA2B;YAC3B,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,gBAAgB,GAAG,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,kDAAkD,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CACX,aAAa,KAAK,sCAAsC,gBAAgB,EAAE,EAAE,CAC7E,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,CAAC,EAAE,CAAC,CAAC,gBAAgB;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,gBAAgB,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,0CAA0C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/B,gBAAgB;QAChB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iBAAiB;QACjB,MAAM,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oDAAoD;QACpD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAE3C,8CAA8C;YAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,KAAK,CACX,6EAA6E,CAC9E,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9D,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAChF,CAAC;iBAAM,IACL,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACzB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CACX,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* CLI tool for bootstrapping new VeloxTS applications with multiple templates.
|
|
5
5
|
* Provides an interactive setup experience similar to create-next-app.
|
|
6
6
|
*/
|
|
7
|
-
import type { TemplateType } from './templates/index.js';
|
|
7
|
+
import type { DatabaseType, TemplateType } from './templates/index.js';
|
|
8
8
|
/** Create-velox-app package version */
|
|
9
9
|
export declare const CREATE_VERSION: string;
|
|
10
10
|
/**
|
|
11
11
|
* Main scaffolding function that creates a new VeloxTS project
|
|
12
12
|
*/
|
|
13
|
-
export declare function createVeloxApp(initialProjectName?: string, initialTemplate?: TemplateType): Promise<void>;
|
|
13
|
+
export declare function createVeloxApp(initialProjectName?: string, initialTemplate?: TemplateType, initialDatabase?: DatabaseType): Promise<void>;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiBvF,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,MAA+C,CAAC;AAkD7E;;GAEG;AACH,wBAAsB,cAAc,CAClC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,YAAY,EAC9B,eAAe,CAAC,EAAE,YAAY,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuEf"}
|
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ function isPathSafe(baseDir, targetPath) {
|
|
|
56
56
|
/**
|
|
57
57
|
* Main scaffolding function that creates a new VeloxTS project
|
|
58
58
|
*/
|
|
59
|
-
export async function createVeloxApp(initialProjectName, initialTemplate) {
|
|
59
|
+
export async function createVeloxApp(initialProjectName, initialTemplate, initialDatabase) {
|
|
60
60
|
// Print welcome banner
|
|
61
61
|
console.log('');
|
|
62
62
|
p.intro(pc.cyan(pc.bold('create-velox-app')));
|
|
@@ -64,7 +64,7 @@ export async function createVeloxApp(initialProjectName, initialTemplate) {
|
|
|
64
64
|
let projectCreated = false;
|
|
65
65
|
try {
|
|
66
66
|
// Collect project configuration
|
|
67
|
-
const config = await promptProjectConfig(initialProjectName, initialTemplate);
|
|
67
|
+
const config = await promptProjectConfig(initialProjectName, initialTemplate, initialDatabase);
|
|
68
68
|
projectDirectory = config.directory;
|
|
69
69
|
// Show configuration summary
|
|
70
70
|
p.log.info(pc.dim('Configuration:'));
|
|
@@ -124,7 +124,7 @@ export async function createVeloxApp(initialProjectName, initialTemplate) {
|
|
|
124
124
|
/**
|
|
125
125
|
* Prompt user for project configuration
|
|
126
126
|
*/
|
|
127
|
-
async function promptProjectConfig(initialName, initialTemplate) {
|
|
127
|
+
async function promptProjectConfig(initialName, initialTemplate, initialDatabase) {
|
|
128
128
|
// Project name
|
|
129
129
|
const name = initialName
|
|
130
130
|
? initialName
|
|
@@ -172,10 +172,10 @@ async function promptProjectConfig(initialName, initialTemplate) {
|
|
|
172
172
|
}
|
|
173
173
|
template = selectedTemplate;
|
|
174
174
|
}
|
|
175
|
-
// Database selection
|
|
176
|
-
let database = 'sqlite';
|
|
177
|
-
// Only show database prompt in interactive mode (when
|
|
178
|
-
if (!initialTemplate) {
|
|
175
|
+
// Database selection
|
|
176
|
+
let database = initialDatabase ?? 'sqlite';
|
|
177
|
+
// Only show database prompt in interactive mode (when not provided via CLI)
|
|
178
|
+
if (!initialDatabase && !initialTemplate) {
|
|
179
179
|
const databases = getAvailableDatabases();
|
|
180
180
|
const selectedDatabase = await p.select({
|
|
181
181
|
message: 'Choose a database',
|