Skip to content

Commit 180e500

Browse files
committed
fix(create): validate --package-manager flag value
Validate that the --package-manager CLI argument is one of the known package managers (pnpm, npm, yarn, bun) before using it. Previously any string was accepted via an unchecked type cast.
1 parent a5313aa commit 180e500

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

packages/cli/src/create/bin.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,16 @@ Use \`vp create --list\` to list all available templates, or run \`vp create --h
632632
}
633633

634634
// Resolve package manager: workspace detection > CLI flag > interactive prompt/default
635+
if (
636+
options.packageManager &&
637+
!Object.values(PackageManager).includes(options.packageManager as PackageManager)
638+
) {
639+
const valid = Object.values(PackageManager).join(', ');
640+
prompts.log.error(
641+
`Invalid package manager: ${options.packageManager}. Must be one of: ${valid}`,
642+
);
643+
cancelAndExit('Invalid --package-manager value', 1);
644+
}
635645
const packageManager =
636646
workspaceInfoOptional.packageManager ??
637647
(options.packageManager as PackageManager | undefined) ??

0 commit comments

Comments
 (0)