fromElement static method
PackageMeta?
fromElement(
- LibraryElement libraryElement,
- String sdkDir,
- ResourceProvider resourceProvider
Use this instead of fromDir where possible.
Implementation
static PackageMeta? fromElement(
LibraryElement libraryElement,
String sdkDir,
ResourceProvider resourceProvider,
) {
if (libraryElement.isInSdk) {
return PubPackageMeta.fromDir(
resourceProvider.getFolder(sdkDir),
resourceProvider,
);
}
final pathContext = resourceProvider.pathContext;
final sourcePath = pathContext.canonicalize(
libraryElement.firstFragment.source.fullName,
);
final sourceFile = resourceProvider.getFile(sourcePath);
if (sourceFile.exists) {
return PubPackageMeta.fromDir(sourceFile.parent, resourceProvider);
}
var current = pathContext.dirname(sourcePath);
while (current.isNotEmpty && current != pathContext.dirname(current)) {
final folder = resourceProvider.getFolder(current);
if (folder.exists) {
return PubPackageMeta.fromDir(folder, resourceProvider);
}
current = pathContext.dirname(current);
}
return null;
}