Index: sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart |
index 13567edcdbb7160869936af5ed02b0104fff68fc..14556fc70fbfc7ea392519f04ae7cf2ca0b6d1d1 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart |
@@ -19,6 +19,7 @@ import '../dart.dart' as dart; |
import '../log.dart' as log; |
import '../utils.dart'; |
import 'build_environment.dart'; |
+import 'excluding_transformer.dart'; |
/// A Dart script to run in an isolate. |
/// |
@@ -386,7 +387,9 @@ Future<Set> loadTransformers(BuildEnvironment environment, TransformerId id) { |
// TODO(nweiz): support non-JSON-encodable configuration maps. |
'configuration': JSON.encode(id.configuration) |
}).then((transformers) { |
- transformers = transformers.map(_deserializeTransformerOrGroup).toSet(); |
+ transformers = transformers.map( |
+ (transformer) => _deserializeTransformerOrGroup(transformer, id)) |
+ .toSet(); |
log.fine("Transformers from $assetId: $transformers"); |
return transformers; |
}); |
@@ -447,9 +450,10 @@ class _ForeignGroup implements TransformerGroup { |
/// The result of calling [toString] on the transformer group in the isolate. |
final String _toString; |
- _ForeignGroup(Map map) |
+ _ForeignGroup(TransformerId id, Map map) |
: phases = map['phases'].map((phase) { |
- return phase.map(_deserializeTransformerOrGroup).toList(); |
+ return phase.map((transformer) => _deserializeTransformerOrGroup( |
+ transformer, id)).toList(); |
}).toList(), |
_toString = map['toString']; |
@@ -457,10 +461,14 @@ class _ForeignGroup implements TransformerGroup { |
} |
/// Converts a serializable map into a [Transformer] or a [TransformerGroup]. |
-_deserializeTransformerOrGroup(Map map) { |
- if (map['type'] == 'Transformer') return new _ForeignTransformer(map); |
+_deserializeTransformerOrGroup(Map map, TransformerId id) { |
+ if (map['type'] == 'Transformer') { |
+ var transformer = new _ForeignTransformer(map); |
+ return ExcludingTransformer.wrap(transformer, id.includes, id.excludes); |
+ } |
+ |
assert(map['type'] == 'TransformerGroup'); |
- return new _ForeignGroup(map); |
+ return new _ForeignGroup(id, map); |
} |
/// Converts [transform] into a serializable map. |