resolve method
Implementation
@override
Future<ResolvedPrebuilt?> resolve(PrebuiltResolutionContext context) async {
final canonicalName = canonicalLibraryName(
target: context.target,
libraryStem: context.libraryStem,
payload: context.payload,
);
final searchRoots = _computeSearchRoots(context);
for (final root in searchRoots) {
final candidate = File(
p.join(root.path, directoryName, context.target.label, canonicalName),
);
if (candidate.existsSync()) {
try {
final hash = await ArchiveReader.sha256Hash(candidate);
return ResolvedPrebuiltFound(
file: ResolvedFile(path: candidate.path, hash: hash),
source: PrebuiltSource.localCache,
);
} catch (_) {
// Invalid file, skip.
}
}
}
return null;
}