@@ -16,7 +16,13 @@ import { createDefaultEnvironment } from './environment.js'
16
16
17
17
import type { PackageManager } from './package-manager.js'
18
18
import type { ToolChain } from './toolchain.js'
19
- import type { CliOptions , Framework , Mode , TemplateOptions } from './types.js'
19
+ import type {
20
+ CliOptions ,
21
+ Framework ,
22
+ Mode ,
23
+ Options ,
24
+ TemplateOptions ,
25
+ } from './types.js'
20
26
21
27
export function cli ( {
22
28
name,
@@ -119,6 +125,7 @@ export function cli({
119
125
return value as ToolChain
120
126
} ,
121
127
)
128
+ . option ( '--interactive' , 'interactive mode' , false )
122
129
. option ( '--tailwind' , 'add Tailwind CSS' , false )
123
130
. option < Array < string > | boolean > (
124
131
'--add-ons [...add-ons]' ,
@@ -163,11 +170,17 @@ export function cli({
163
170
cliOptions . template = forcedMode as TemplateOptions
164
171
}
165
172
166
- let finalOptions = await normalizeOptions (
167
- cliOptions ,
168
- forcedMode ,
169
- forcedAddOns ,
170
- )
173
+ let finalOptions : Options | undefined
174
+ if ( cliOptions . interactive ) {
175
+ cliOptions . addOns = true
176
+ } else {
177
+ finalOptions = await normalizeOptions (
178
+ cliOptions ,
179
+ forcedMode ,
180
+ forcedAddOns ,
181
+ )
182
+ }
183
+
171
184
if ( finalOptions ) {
172
185
intro ( `Creating a new ${ appName } app in ${ projectName } ...` )
173
186
} else {
@@ -177,7 +190,8 @@ export function cli({
177
190
forcedAddOns,
178
191
} )
179
192
}
180
- await createApp ( finalOptions , {
193
+
194
+ await createApp ( finalOptions ! , {
181
195
environment : createDefaultEnvironment ( ) ,
182
196
cwd : options . targetDir || undefined ,
183
197
name,
0 commit comments