discoverFiles static method

Future<List<FileConfig>> discoverFiles(
  1. ConfigEntry entry,
  2. String workingDirectory
)

Discover files based on a configuration entry

Implementation

static Future<List<FileConfig>> discoverFiles(
  ConfigEntry entry,
  String workingDirectory,
) async {
  final discoveredFiles = <FileConfig>[];
  final basePath = path.isAbsolute(entry.path)
      ? entry.path
      : path.join(workingDirectory, entry.path);

  final baseDir = Directory(basePath);

  if (!await baseDir.exists()) {
    // If path doesn't exist, skip silently or you could throw an error
    return discoveredFiles;
  }

  await for (final entity in baseDir.list(recursive: entry.recursive)) {
    if (entity is File) {
      final filePath = entity.path;
      final fileName = path.basename(filePath);

      // Check if file should be excluded
      if (shouldExcludeFile(fileName, filePath, entry.exclusions)) {
        continue;
      }

      // Check if the generator can handle this file type
      if (GeneratorRegistry.canHandleFile(entry.type, filePath)) {
        discoveredFiles.add(FileConfig.generate(filePath, entry.type));
      }
    }
  }

  return discoveredFiles;
}