toSnakeCase function

String toSnakeCase(
  1. String input
)

Converts a string to snake_case. e.g. productCard → product_card, MyBanner → my_banner

Implementation

String toSnakeCase(String input) {
  if (input.isEmpty) return '';
  // Handle camelCase / PascalCase
  final exp = RegExp(r'(?<=[a-z])([A-Z])|(?<=[A-Z])([A-Z][a-z])');
  final snake =
      input.replaceAllMapped(exp, (m) => '_${m.group(0)}').toLowerCase();
  return snake.replaceAll('-', '_').replaceAll(RegExp(r'_+'), '_');
}