findAssets method
Returns all readable assets matching glob
under the current package.
Implementation
@override
Stream<AssetId> findAssets(Glob glob, {String? package}) {
package ??= _rootPackage;
if (package == null) {
throw UnsupportedError(
'Root package must be provided to use `findAssets` without an '
'explicit `package`.');
}
var packageLibDir = _packageConfig[package]?.packageUriRoot;
if (packageLibDir == null) return const Stream.empty();
var packageFiles = Directory.fromUri(packageLibDir)
.list(recursive: true)
.whereType<File>()
.map((f) =>
p.join('lib', p.relative(f.path, from: p.fromUri(packageLibDir))));
if (package == _rootPackage) {
packageFiles = packageFiles.merge(Directory(_rootPackagePath)
.list(recursive: true)
.whereType<File>()
.map((f) => p.relative(f.path, from: _rootPackagePath))
.where((p) => !(p.startsWith('packages/') || p.startsWith('lib/'))));
}
return packageFiles.where(glob.matches).map((p) => AssetId(package!, p));
}