toPascalCase function

String toPascalCase(
  1. String input
)

Converts a snake_case, kebab-case, or camelCase string to PascalCase e.g. product_card → ProductCard, myBanner → MyBanner

Implementation

String toPascalCase(String input) {
  if (input.isEmpty) return '';
  // First split on underscores/hyphens
  final words = input.split(RegExp(r'[_-]'));
  final expanded = <String>[];
  for (final word in words) {
    if (word.isEmpty) continue;
    // Split on camelCase boundaries within each word
    final parts = word
        .splitMapJoin(
          RegExp(r'(?<=[a-z])(?=[A-Z])'),
          onMatch: (m) => '_',
          onNonMatch: (s) => s,
        )
        .split('_');
    expanded.addAll(parts.where((p) => p.isNotEmpty));
  }
  return expanded.map((w) {
    if (w.isEmpty) return '';
    return w.substring(0, 1).toUpperCase() + w.substring(1);
  }).join('');
}