Index: sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart |
index 6401105a488693d4d585e90f73348b0bf7cfaf9c..c9cfdafc58baf0fafd3573df962fe938dfd4cc48 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart |
@@ -11,6 +11,7 @@ import '../io.dart'; |
import '../package.dart'; |
import '../package_graph.dart'; |
import '../utils.dart'; |
+import 'asset_environment.dart'; |
import 'cycle_exception.dart'; |
import 'transformer_config.dart'; |
import 'transformer_id.dart'; |
@@ -25,11 +26,16 @@ import 'transformer_id.dart'; |
/// The returned graph is transitively closed. That is, if there's an edge from |
/// `T1` to `T2` and an edge from `T2` to `T3`, there's also an edge from `T1` |
/// to `T2`. |
+/// |
+/// If [packages] is passed, only transformers in those packages will be |
+/// inspected. |
Map<TransformerId, Set<TransformerId>> computeTransformersNeededByTransformers( |
- PackageGraph graph) { |
+ PackageGraph graph, {Iterable<String> packages}) { |
+ if (packages == null) packages = graph.packages.keys; |
+ |
var result = {}; |
var computer = new _DependencyComputer(graph); |
- for (var packageName in ordered(graph.packages.keys)) { |
+ for (var packageName in ordered(packages)) { |
var package = graph.packages[packageName]; |
for (var phase in package.pubspec.transformers) { |
for (var config in phase) { |