type Casing = 'original' | 'lowercase' | 'uppercase' | 'sentence';

export function changeTextCasing(str: string, casing: Casing = 'original') {
  if (casing === 'original' || !str) return str;

  if (casing === 'lowercase') {
    return str.toLowerCase();
  }

  if (casing === 'uppercase') {
    return str.toUpperCase();
  }

  if (casing === 'sentence') {
    const words = str?.split(/[\s-_]+/);
    return words.map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()).join(' ');
  }
}
