/** * String utility functions for code generation */ /** * Convert string to camelCase */ export function toCamelCase(str: string): string { return str .replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase()) .replace(/^[A-Z]/, (char) => char.toLowerCase()); } /** * Convert string to PascalCase */ export function toPascalCase(str: string): string { return str .replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase()) .replace(/^[a-z]/, (char) => char.toUpperCase()); } /** * Convert string to kebab-case */ export function toKebabCase(str: string): string { return str .replace(/([a-z])([A-Z])/g, '$1-$2') .replace(/[\s_]+/g, '-') .toLowerCase(); } /** * Convert string to snake_case */ export function toSnakeCase(str: string): string { return str .replace(/([a-z])([A-Z])/g, '$1_$2') .replace(/[\s-]+/g, '_') .toLowerCase(); } /** * Generate a tool ID from a name */ export function generateToolId(name: string): string { return toKebabCase(name); } /** * Sanitize a string for use as an identifier */ export function sanitizeIdentifier(str: string): string { return str .replace(/[^a-zA-Z0-9_]/g, '_') .replace(/^[0-9]/, '_$&'); }