/**
 * Text Formatting Helpers
 *
 * Common text transformation utilities.
 */

/**
 * Convert a plural title to singular by removing the last character.
 * Simple approach for entity names like "roles" -> "role".
 *
 * @example
 * singularize('View roles')  // 'View role'
 * singularize('assets')      // 'asset'
 */
export function singularize(pluralTitle: string): string {
  return pluralTitle.slice(0, -1);
}

/**
 * Capitalize the first letter of a string.
 *
 * @example
 * capitalize('hello')  // 'Hello'
 */
export function capitalize(str: string): string {
  if (!str) return '';
  return str.charAt(0).toUpperCase() + str.slice(1);
}

/**
 * Convert snake_case to Title Case.
 *
 * @example
 * snakeToTitle('tour_pages')  // 'Tour Pages'
 */
export function snakeToTitle(str: string): string {
  return str.split('_').map(capitalize).join(' ');
}

/**
 * Convert camelCase to Title Case.
 *
 * @example
 * camelToTitle('tourPages')  // 'Tour Pages'
 */
export function camelToTitle(str: string): string {
  return str
    .replace(/([A-Z])/g, ' $1')
    .trim()
    .split(' ')
    .map(capitalize)
    .join(' ');
}
