expandBraces function

List<String> expandBraces(
  1. String pattern
)

Expand brace patterns in a glob string.

Implementation

List<String> expandBraces(String pattern) {
  final braceMatch = RegExp(r'^([^{]*)\{([^}]+)\}(.*)$').firstMatch(pattern);
  if (braceMatch == null) return [pattern];

  final prefix = braceMatch.group(1) ?? '';
  final alternatives = braceMatch.group(2) ?? '';
  final suffix = braceMatch.group(3) ?? '';

  final parts = alternatives.split(',').map((s) => s.trim());
  final expanded = <String>[];
  for (final part in parts) {
    expanded.addAll(expandBraces('$prefix$part$suffix'));
  }
  return expanded;
}