Skip to content

Commit f7c8f98

Browse files
committed
fix: adding an interactive flag to force interactivity
1 parent c80ae96 commit f7c8f98

File tree

3 files changed

+25
-8
lines changed

3 files changed

+25
-8
lines changed

packages/cta-engine/src/cli.ts

+21-7
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ import { createDefaultEnvironment } from './environment.js'
1616

1717
import type { PackageManager } from './package-manager.js'
1818
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'
2026

2127
export function cli({
2228
name,
@@ -119,6 +125,7 @@ export function cli({
119125
return value as ToolChain
120126
},
121127
)
128+
.option('--interactive', 'interactive mode', false)
122129
.option('--tailwind', 'add Tailwind CSS', false)
123130
.option<Array<string> | boolean>(
124131
'--add-ons [...add-ons]',
@@ -163,11 +170,17 @@ export function cli({
163170
cliOptions.template = forcedMode as TemplateOptions
164171
}
165172

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+
171184
if (finalOptions) {
172185
intro(`Creating a new ${appName} app in ${projectName}...`)
173186
} else {
@@ -177,7 +190,8 @@ export function cli({
177190
forcedAddOns,
178191
})
179192
}
180-
await createApp(finalOptions, {
193+
194+
await createApp(finalOptions!, {
181195
environment: createDefaultEnvironment(),
182196
cwd: options.targetDir || undefined,
183197
name,

packages/cta-engine/src/options.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ export async function promptForOptions(
167167
forcedAddOns?: Array<string>
168168
forcedMode?: TemplateOptions
169169
},
170-
): Promise<Required<Options>> {
170+
): Promise<Required<Options> | undefined> {
171171
const options = {} as Required<Options>
172172

173173
options.framework = cliOptions.framework || DEFAULT_FRAMEWORK
@@ -195,6 +195,8 @@ export async function promptForOptions(
195195
process.exit(0)
196196
}
197197
options.projectName = value
198+
} else {
199+
options.projectName = cliOptions.projectName
198200
}
199201

200202
// Router type selection

packages/cta-engine/src/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export interface CliOptions {
3737
mcpSse?: boolean
3838
overlay?: string
3939
targetDir?: string
40+
interactive?: boolean
4041
}
4142

4243
export type Environment = {

0 commit comments

Comments
 (0)