@redocly/theme
Version:
Shared UI components lib
19 lines (14 loc) • 502 B
text/typescript
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(' ');
}
}