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

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

Issue 133843006: Support configuring dart2js from the pubspec. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code reivew Created 6 years, 11 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/load_all_transformers.dart
diff --git a/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart
index 1c2c38b676cd4d597c5abce9ee3f3229e87dfeaa..93c523cd42c59f95569f9f9046613a7aff7ccad3 100644
--- a/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart
+++ b/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart
@@ -8,6 +8,7 @@ import 'dart:async';
import 'package:barback/barback.dart';
+import 'dart2js_transformer.dart';
import 'load_transformers.dart';
import 'rewrite_import_transformer.dart';
import 'server.dart';
@@ -161,6 +162,7 @@ Map<String, Set<String>> _computeOrderingDeps(PackageGraph graph) {
/// Returns the set of transformer dependencies for [package].
Set<String> _transformerDeps(PackageGraph graph, String package) =>
unionAll(graph.packages[package].pubspec.transformers)
+ .where((id) => !id.isBuiltInTransformer)
.map((id) => id.package).toSet();
/// Returns an [ApplicationException] describing an ordering dependency cycle
@@ -199,6 +201,7 @@ Map<String, Set<TransformerId>> _computePackageTransformers(
for (var package in graph.packages.values) {
for (var phase in package.pubspec.transformers) {
for (var id in phase) {
+ if (id.isBuiltInTransformer) continue;
packageTransformers[id.package].add(id);
}
}
@@ -208,6 +211,7 @@ Map<String, Set<TransformerId>> _computePackageTransformers(
/// A class that loads transformers defined in specific files.
class _TransformerLoader {
+ final PackageGraph _graph;
final BarbackServer _server;
/// The mode that pub is running barback in.
@@ -222,8 +226,8 @@ class _TransformerLoader {
/// Used for error reporting.
final _transformerUsers = new Map<Pair<String, String>, Set<String>>();
- _TransformerLoader(this._server, this._mode, PackageGraph graph) {
- for (var package in graph.packages.values) {
+ _TransformerLoader(this._server, this._mode, this._graph) {
+ for (var package in _graph.packages.values) {
for (var id in unionAll(package.pubspec.transformers)) {
_transformerUsers.putIfAbsent(
new Pair(id.package, id.path), () => new Set<String>())
@@ -249,7 +253,7 @@ class _TransformerLoader {
}
var message = "No transformers";
- if (id.configuration != null) {
+ if (id.configuration.isNotEmpty) {
message += " that accept configuration";
}
@@ -273,7 +277,18 @@ class _TransformerLoader {
/// It's an error to call this before [load] is called with [id] and the
/// future it returns has completed.
Set<Transformer> transformersFor(TransformerId id) {
- assert(_transformers.containsKey(id));
+ if (_transformers.containsKey(id)) return _transformers[id];
+
+ assert(id.package == '\$dart2js');
+ var transformer;
+ try {
+ transformer = new Dart2JSTransformer.withSettings(
+ _graph, new BarbackSettings(id.configuration, _mode));
+ } on FormatException catch (error, stackTrace) {
+ fail(error.message, error, stackTrace);
+ }
+
+ _transformers[id] = new Set.from([transformer]);
return _transformers[id];
}
}

Powered by Google App Engine
This is Rietveld 408576698