Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart

Issue 597773003: Have barback lazily load assets from static pub packages. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
+ }));
+ }
}
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart ('k') | sdk/lib/_internal/pub/lib/src/package_graph.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698