parseGlobPatterns function

List<String> parseGlobPatterns(
  1. String glob
)

Split glob patterns, preserving brace expressions. E.g. "*.{ts,tsx} *.dart" -> "*.{ts,tsx}", "*.dart"

Implementation

List<String> parseGlobPatterns(String glob) {
  final patterns = <String>[];
  final rawPatterns = glob.split(RegExp(r'\s+'));
  for (final raw in rawPatterns) {
    if (raw.isEmpty) continue;
    // If pattern contains braces, don't split further
    if (raw.contains('{') && raw.contains('}')) {
      patterns.add(raw);
    } else {
      // Split on commas for patterns without braces
      patterns.addAll(raw.split(',').where((s) => s.isNotEmpty));
    }
  }
  return patterns;
}