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

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart

Issue 583853002: Use precompiled dependencies in pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes 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_generated/lib/src/barback/asset_environment.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart b/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart
index df75afd35f965a1b3efc08b888b54d52ae3e8181..c91caf54bbe813e25439e1bcd2675e17983d1664 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart
@@ -4,6 +4,7 @@ import 'dart:io';
import 'package:barback/barback.dart';
import 'package:path/path.dart' as path;
import 'package:watcher/watcher.dart';
+import '../cached_package.dart';
import '../entrypoint.dart';
import '../exceptions.dart';
import '../io.dart';
@@ -29,19 +30,29 @@ class AssetEnvironment {
if (basePort == null) basePort = 0;
return entrypoint.loadPackageGraph().then((graph) {
log.fine("Loaded package graph.");
- var barback = new Barback(new PubPackageProvider(graph, packages));
+ graph = _adjustPackageGraph(graph, mode, packages);
+ var barback = new Barback(new PubPackageProvider(graph));
barback.log.listen(_log);
- var environment = new AssetEnvironment._(
- graph,
- barback,
- mode,
- watcherType,
- hostname,
- basePort,
- packages);
+ var environment =
+ new AssetEnvironment._(graph, barback, mode, watcherType, hostname, basePort);
return environment._load(useDart2JS: useDart2JS).then((_) => environment);
});
}
+ static PackageGraph _adjustPackageGraph(PackageGraph graph, BarbackMode mode,
+ Iterable<String> packages) {
+ if (mode != BarbackMode.DEBUG && packages == null) return graph;
+ packages = (packages == null ? graph.packages.keys : packages).toSet();
+ return new PackageGraph(
+ graph.entrypoint,
+ graph.lockFile,
+ new Map.fromIterable(packages, value: (packageName) {
+ var package = graph.packages[packageName];
+ if (mode != BarbackMode.DEBUG) return package;
+ var cache = path.join('.pub/deps/debug', packageName);
+ if (!dirExists(cache)) return package;
+ return new CachedPackage(package, cache);
+ }));
+ }
AdminServer _adminServer;
final _directories = new Map<String, SourceDirectory>();
final Barback barback;
@@ -52,14 +63,9 @@ class AssetEnvironment {
final WatcherType _watcherType;
final String _hostname;
final int _basePort;
- final Set<String> packages;
Set<AssetId> _modifiedSources;
- AssetEnvironment._(PackageGraph graph, this.barback, this.mode,
- this._watcherType, this._hostname, this._basePort, Iterable<String> packages)
- : graph = graph,
- packages = packages == null ?
- graph.packages.keys.toSet() :
- packages.toSet();
+ AssetEnvironment._(this.graph, this.barback, this.mode, this._watcherType,
+ this._hostname, this._basePort);
Iterable<Transformer> getBuiltInTransformers(Package package) {
if (package.name != rootPackage.name) return null;
if (_builtInTransformers.isEmpty) return null;
@@ -180,17 +186,17 @@ class AssetEnvironment {
Future<List<Uri>> _lookUpPathInPackagesDirectory(String assetPath) {
var components = path.split(path.relative(assetPath));
if (components.first != "packages") return new Future.value([]);
- if (!packages.contains(components[1])) return new Future.value([]);
+ if (!graph.packages.containsKey(components[1])) return new Future.value([]);
return Future.wait(_directories.values.map((dir) {
return dir.server.then(
(server) => server.url.resolveUri(path.toUri(assetPath)));
}));
}
Future<List<Uri>> _lookUpPathInDependency(String assetPath) {
- for (var packageName in packages) {
+ for (var packageName in graph.packages.keys) {
var package = graph.packages[packageName];
- var libDir = path.join(package.dir, 'lib');
- var assetDir = path.join(package.dir, 'asset');
+ var libDir = package.path('lib');
+ var assetDir = package.path('asset');
var uri;
if (path.isWithin(libDir, assetPath)) {
uri = path.toUri(
@@ -301,8 +307,8 @@ class AssetEnvironment {
}, fine: true);
}
Future _provideSources() {
- return Future.wait(packages.map((package) {
- return _provideDirectorySources(graph.packages[package], "lib");
+ return Future.wait(graph.packages.values.map((package) {
+ return _provideDirectorySources(package, "lib");
}));
}
Future<StreamSubscription<WatchEvent>>
@@ -334,7 +340,7 @@ class AssetEnvironment {
}
Iterable<AssetId> _listDirectorySources(Package package, String dir) {
return package.listFiles(beneath: dir).map((file) {
- var relative = path.relative(file, from: package.dir);
+ var relative = package.relative(file);
if (Platform.operatingSystem == 'windows') {
relative = relative.replaceAll("\\", "/");
}
@@ -349,7 +355,7 @@ class AssetEnvironment {
graph.entrypoint.cache.sources[packageId.source] is CachedSource) {
return new Future.value();
}
- var subdirectory = path.join(package.dir, dir);
+ var subdirectory = package.path(dir);
if (!dirExists(subdirectory)) return new Future.value();
var watcher = _watcherType.create(subdirectory);
var subscription = watcher.events.listen((event) {
@@ -358,7 +364,7 @@ class AssetEnvironment {
if (event.path.endsWith(".dart.js")) return;
if (event.path.endsWith(".dart.js.map")) return;
if (event.path.endsWith(".dart.precompiled.js")) return;
- var idPath = path.relative(event.path, from: package.dir);
+ var idPath = package.relative(event.path);
var id = new AssetId(package.name, path.toUri(idPath).toString());
if (event.type == ChangeType.REMOVE) {
if (_modifiedSources != null) {

Powered by Google App Engine
This is Rietveld 408576698