initializeLibraryReader function
Returns a LibraryReader
for library specified by targetLibraryFileName
using the file contents described by contentMap
.
contentMap
contains the Dart file contents to from which to create the
library stored as filename / file content pairs.
Implementation
Future<LibraryReader> initializeLibraryReader(
Map<String, String> contentMap,
String targetLibraryFileName,
) async {
if (!contentMap.containsKey(targetLibraryFileName)) {
throw ArgumentError.value(
targetLibraryFileName,
'targetLibraryFileName',
'Must exist as a key in `contentMap`.',
);
}
String assetIdForFile(String fileName) => '$testPackageName|lib/$fileName';
final targetLibraryAssetId = assetIdForFile(targetLibraryFileName);
final assetMap = contentMap
.map((file, content) => MapEntry(assetIdForFile(file), content));
final library = await resolveSources(
assetMap,
(item) async {
final assetId = AssetId.parse(targetLibraryAssetId);
return item.libraryFor(assetId);
},
resolverFor: targetLibraryAssetId,
);
return LibraryReader(library);
}