toCamelCase method
Converts a PascalCase or camelCase string into camelCase
Implementation
String toCamelCase() {
// 1. Normalize separators: convert "-" to "_"
String input = replaceAll('-', '_');
// 2. Insert underscore only when uppercase follows lowercase or digit
input = input.replaceAllMapped(
RegExp(r'(?<=[a-z0-9])([A-Z])'),
(match) => '_${match[1]}',
);
// 3. Convert to lowercase
input = input.toLowerCase();
// 4. Remove leading underscore if any
if (input.startsWith('_')) {
input = input.substring(1);
}
// 5. Convert snake_case → camelCase
input = input.replaceAllMapped(
RegExp(r'_(\w)'),
(match) => match[1]!.toUpperCase(),
);
return input;
}