UNPKG

@tanstack/cli

Version:
25 lines (24 loc) 1.04 kB
import { basename } from 'node:path'; import validatePackageName from 'validate-npm-package-name'; export function sanitizePackageName(name) { return name .toLowerCase() .replace(/\s+/g, '-') // Replace spaces with hyphens .replace(/_/g, '-') // Replace underscores with hyphens .replace(/[^a-z0-9-]/g, '') // Remove invalid characters .replace(/^[^a-z]+/, '') // Ensure it starts with a letter .replace(/-+/g, '-') // Collapse multiple hyphens .replace(/-$/, ''); // Remove trailing hyphen } export function getCurrentDirectoryName() { return basename(process.cwd()); } export function validateProjectName(name) { const { validForNewPackages, validForOldPackages, errors, warnings } = validatePackageName(name); const error = errors?.[0] || warnings?.[0]; return { valid: validForNewPackages && validForOldPackages, error: error?.replace(/name/g, 'Project name') || 'Project name does not meet npm package naming requirements', }; }