initializeLibraryReaderForDirectory function

Future<LibraryReader> initializeLibraryReaderForDirectory(
  1. String sourceDirectory,
  2. String targetLibraryFileName
)

Returns a LibraryReader for library specified by targetLibraryFileName using the files in sourceDirectory.

Implementation

Future<LibraryReader> initializeLibraryReaderForDirectory(
  String sourceDirectory,
  String targetLibraryFileName,
) async {
  final map = Map.fromEntries(
    Directory(sourceDirectory)
        .listSync()
        .whereType<File>()
        .map((f) => MapEntry(p.basename(f.path), f.readAsStringSync())),
  );

  try {
    return await initializeLibraryReader(map, targetLibraryFileName);
  } on ArgumentError catch (e) // ignore: avoid_catching_errors
  {
    if (e.message == 'Must exist as a key in `contentMap`.') {
      throw ArgumentError.value(
        targetLibraryFileName,
        'targetLibraryFileName',
        'Must exist as a file in `sourceDirectory`.',
      );
    }
    rethrow;
  }
}