| Index: sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart b/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart
|
| index 72f22928d982d139d91170cc24212b27280ed607..a7c7046b05bb79d0f2faa9b0d59430cb25f21dfd 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart
|
| @@ -17,13 +17,17 @@ import '../utils.dart';
|
|
|
| /// An implementation of barback's [PackageProvider] interface so that barback
|
| /// can find assets within pub packages.
|
| -class PubPackageProvider implements PackageProvider {
|
| +class PubPackageProvider implements StaticPackageProvider {
|
| final PackageGraph _graph;
|
| - final List<String> packages;
|
| + final List<String> staticPackages;
|
| +
|
| + Iterable<String> get packages =>
|
| + _graph.packages.keys.toSet().difference(staticPackages);
|
|
|
| PubPackageProvider(PackageGraph graph)
|
| : _graph = graph,
|
| - packages = [r"$pub", r"$sdk"]..addAll(graph.packages.keys);
|
| + staticPackages = [r"$pub", r"$sdk"]..addAll(
|
| + graph.packages.keys.where(graph.isPackageStatic));
|
|
|
| Future<Asset> getAsset(AssetId id) {
|
| // "$pub" is a psuedo-package that allows pub's transformer-loading
|
| @@ -69,4 +73,13 @@ class PubPackageProvider implements PackageProvider {
|
| var file = _graph.packages[id.package].path(nativePath);
|
| return new Future.value(new Asset.fromPath(id, file));
|
| }
|
| +
|
| + Stream<AssetId> getAllAssetIds(String packageName) {
|
| + var package = _graph.packages[packageName];
|
| + return new Stream.fromIterable(
|
| + package.listFiles(beneath: 'lib').map((file) {
|
| + return new AssetId(packageName,
|
| + path.toUri(package.relative(file)).toString());
|
| + }));
|
| + }
|
| }
|
|
|