| 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];
|
| }
|
| }
|
|
|