in lib/src/package_config_io.dart [65:106]
Future<PackageConfig> readAnyConfigFileUri(
Uri file,
Future<Uint8List?> Function(Uri uri)? loader,
void Function(Object error) onError,
bool preferNewest) async {
if (file.isScheme('package')) {
throw PackageConfigArgumentError(
file, 'file', 'Must not be a package: URI');
}
if (loader == null) {
if (file.isScheme('file')) {
return await readAnyConfigFile(File.fromUri(file), preferNewest, onError);
}
loader = defaultLoader;
}
if (preferNewest && file.pathSegments.last == packagesFileName) {
var alternateFile = file.resolve('$dartToolDirName/$packageConfigFileName');
Uint8List? bytes;
try {
bytes = await loader(alternateFile);
} catch (e) {
onError(e);
return const SimplePackageConfig.empty();
}
if (bytes != null) {
return parsePackageConfigBytes(bytes, alternateFile, onError);
}
}
Uint8List? bytes;
try {
bytes = await loader(file);
} catch (e) {
onError(e);
return const SimplePackageConfig.empty();
}
if (bytes == null) {
onError(PackageConfigArgumentError(
file.toString(), 'file', 'File cannot be read'));
return const SimplePackageConfig.empty();
}
return parseAnyConfigFile(bytes, file, onError);
}