diff --git a/.changeset/early-lizards-knock.md b/.changeset/early-lizards-knock.md new file mode 100644 index 000000000000..22559b8c23f1 --- /dev/null +++ b/.changeset/early-lizards-knock.md @@ -0,0 +1,8 @@ +--- +"create-cloudflare": patch +--- + +Minor improvements when using the `--existing-script scriptName` flag: + +- Format the type as "Pre-existing Worker (from Dashboard)" +- Defaults the project name to `scriptName` diff --git a/packages/cli/interactive.ts b/packages/cli/interactive.ts index 75521d38fc1a..1adc29060114 100644 --- a/packages/cli/interactive.ts +++ b/packages/cli/interactive.ts @@ -13,6 +13,7 @@ const leftT = gray(shapes.leftT); export type Option = { label: string; value: string; + hidden?: boolean; }; export type BasePromptConfig = { @@ -69,7 +70,6 @@ export const inputPrompt = async (promptConfig: PromptConfig) => { if (promptConfig.type === "select") { prompt = new SelectPrompt({ ...promptConfig, - options: (promptConfig as SelectPromptConfig).options, initialValue: String(promptConfig.defaultValue), render() { return dispatchRender(this); @@ -187,7 +187,10 @@ const getSelectRenderers = (config: SelectPromptConfig) => { return [ `${blCorner} ${bold(question)} ${dim(helpText)}`, - `${options.map(renderOption).join(`\n`)}`, + `${options + .filter((o) => !o.hidden) + .map(renderOption) + .join(`\n`)}`, ``, // extra line for readability ]; }; diff --git a/packages/create-cloudflare/src/cli.ts b/packages/create-cloudflare/src/cli.ts index 6bf658f38853..2014c822750e 100644 --- a/packages/create-cloudflare/src/cli.ts +++ b/packages/create-cloudflare/src/cli.ts @@ -72,11 +72,13 @@ export const runLatest = async () => { export const runCli = async (args: Partial) => { printBanner(); + const defaultName = args.existingScript || C3_DEFAULTS.projectName; + const projectName = await processArgument(args, "projectName", { type: "text", question: `In which directory do you want to create your application?`, helpText: "also used as application name", - defaultValue: C3_DEFAULTS.projectName, + defaultValue: defaultName, label: "dir", validate: (value) => validateProjectDirectory(String(value) || C3_DEFAULTS.projectName, args), @@ -92,9 +94,9 @@ export const runCli = async (args: Partial) => { } } - const templateOptions = Object.entries(templateMap) - .filter(([_, { hidden }]) => !hidden) - .map(([value, { label }]) => ({ value, label })); + const templateOptions = Object.entries(templateMap).map( + ([value, { label, hidden }]) => ({ value, label, hidden }) + ); const type = await processArgument(args, "type", { type: "select",