/**
* 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]/, '_$&');
}