diff --git a/packages/typegpu-cli/src/utils/inputs.ts b/packages/typegpu-cli/src/utils/inputs.ts index 722779e347..4c6f25fab3 100644 --- a/packages/typegpu-cli/src/utils/inputs.ts +++ b/packages/typegpu-cli/src/utils/inputs.ts @@ -4,20 +4,24 @@ import type { PackageJson } from './types.ts'; import { hasDependency, typegpuPkgs, VERSION } from './pkg.ts'; function isValidProjectDirectory(projectDir: string) { - return !/[<>:"\\|?*\s]|\/+$/.test(projectDir.trim()); + const trimmedDir = projectDir.trim(); + return ( + projectDir.length === 0 || (trimmedDir.length > 0 && !/[<>:"\\|?*\s]|\/+$/.test(trimmedDir)) + ); } export function isValidPackageName(packageName: string) { - return /^(?:@[a-z\d][a-z\d\-._]*\/)?[a-z\d][a-z\d\-._]*$/.test(packageName.trim()); + const trimmedName = packageName.trim(); + return /^(?:@[a-z\d][a-z\d\-._]*\/)?[a-z\d][a-z\d\-._]*$/.test(trimmedName); } export async function getProjectName(initialValue: string) { let projectName = await p.text({ message: 'Project name:', placeholder: initialValue, - initialValue, + defaultValue: initialValue, validate: (value) => { - return value && !isValidProjectDirectory(value) ? 'Invalid project name.' : undefined; + return !isValidProjectDirectory(value) ? 'Invalid project name.' : undefined; }, }); @@ -25,16 +29,14 @@ export async function getProjectName(initialValue: string) { cancelExit(); } - projectName ??= '.'; return projectName.trim(); } export async function getPackageName() { const packageName = await p.text({ message: 'Package name:', - initialValue: '', validate: (value) => { - return !value || !isValidPackageName(value) ? 'Invalid package name.' : undefined; + return !isValidPackageName(value) ? 'Invalid package name.' : undefined; }, });