| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library pub.barback.transformer_cache; | 5 library pub.barback.transformer_cache; |
| 6 | 6 |
| 7 import 'package:path/path.dart' as p; | 7 import 'package:path/path.dart' as p; |
| 8 | 8 |
| 9 import '../io.dart'; | 9 import '../io.dart'; |
| 10 import '../log.dart' as log; | 10 import '../log.dart' as log; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 /// This may modify the cache. | 49 /// This may modify the cache. |
| 50 TransformerCache.load(PackageGraph graph) | 50 TransformerCache.load(PackageGraph graph) |
| 51 : _graph = graph, | 51 : _graph = graph, |
| 52 _dir = graph.entrypoint.root.path(".pub/transformers") { | 52 _dir = graph.entrypoint.root.path(".pub/transformers") { |
| 53 _oldTransformers = _parseManifest(); | 53 _oldTransformers = _parseManifest(); |
| 54 } | 54 } |
| 55 | 55 |
| 56 /// Clear the cache if it depends on any package in [changedPackages]. | 56 /// Clear the cache if it depends on any package in [changedPackages]. |
| 57 void clearIfOutdated(Set<String> changedPackages) { | 57 void clearIfOutdated(Set<String> changedPackages) { |
| 58 var snapshotDependencies = unionAll(_oldTransformers.map((id) { | 58 var snapshotDependencies = unionAll(_oldTransformers.map((id) { |
| 59 // If the transformer cache contains transformers we don't know about, |
| 60 // that's fine; we just won't load them. |
| 61 if (!_graph.packages.containsKey(id.package)) return new Set(); |
| 62 |
| 59 return _graph.transitiveDependencies(id.package) | 63 return _graph.transitiveDependencies(id.package) |
| 60 .map((package) => package.name).toSet(); | 64 .map((package) => package.name).toSet(); |
| 61 })); | 65 })); |
| 62 | 66 |
| 63 // If none of the snapshot's dependencies have changed, then we can reuse | 67 // If none of the snapshot's dependencies have changed, then we can reuse |
| 64 // it. | 68 // it. |
| 65 if (!overlaps(changedPackages, snapshotDependencies)) return; | 69 if (!overlaps(changedPackages, snapshotDependencies)) return; |
| 66 | 70 |
| 67 // Otherwise, delete it. | 71 // Otherwise, delete it. |
| 68 deleteEntry(_dir); | 72 deleteEntry(_dir); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 return new Set(); | 135 return new Set(); |
| 132 } | 136 } |
| 133 | 137 |
| 134 /// The second line of the manifest is a list of transformer ids used to | 138 /// The second line of the manifest is a list of transformer ids used to |
| 135 /// create the existing snapshot. | 139 /// create the existing snapshot. |
| 136 return manifest.single.split(",") | 140 return manifest.single.split(",") |
| 137 .map((id) => new TransformerId.parse(id, null)) | 141 .map((id) => new TransformerId.parse(id, null)) |
| 138 .toSet(); | 142 .toSet(); |
| 139 } | 143 } |
| 140 } | 144 } |
| OLD | NEW |