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

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

Issue 300843007: Run a simple preprocessor on the sources pub loads in barback isolates. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 7 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 1665be9d538da3d3c4db8d5e71e1673dfe779d42..21e6fed60ed8b30bd5f262645cc25cb0bcd76907 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
@@ -11,6 +11,7 @@ import 'package:path/path.dart' as path;
import '../io.dart';
import '../package_graph.dart';
+import '../preprocess.dart';
import '../sdk.dart' as sdk;
/// An implementation of barback's [PackageProvider] interface so that barback
@@ -32,7 +33,18 @@ class PubPackageProvider implements PackageProvider {
assert(components.first == 'lib');
components[0] = 'dart';
var file = assetPath(path.joinAll(components));
- return new Future.value(new Asset.fromPath(id, file));
+
+ // Barback may not be in the package graph if there are no user-defined
+ // transformers being used at all. The "$pub" sources are still provided,
+ // but will never be loaded.
+ var barback = _graph.packages['barback'];
+ if (barback == null) {
+ return new Future.value(new Asset.fromPath(id, file));
+ }
+
+ var contents = readTextFile(file);
+ contents = preprocess(contents, barback.version, path.toUri(file));
+ return new Future.value(new Asset.fromString(id, contents));
}
// "$sdk" is a pseudo-package that provides access to the Dart library
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/barback/asset_environment.dart ('k') | sdk/lib/_internal/pub/lib/src/preprocess.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698