| OLD | NEW |
| 1 library pub.barback.transformer_cache; | 1 library pub.barback.transformer_cache; |
| 2 import 'package:path/path.dart' as p; | 2 import 'package:path/path.dart' as p; |
| 3 import '../io.dart'; | 3 import '../io.dart'; |
| 4 import '../log.dart' as log; | 4 import '../log.dart' as log; |
| 5 import '../package_graph.dart'; | 5 import '../package_graph.dart'; |
| 6 import '../sdk.dart' as sdk; | 6 import '../sdk.dart' as sdk; |
| 7 import '../utils.dart'; | 7 import '../utils.dart'; |
| 8 import 'transformer_id.dart'; | 8 import 'transformer_id.dart'; |
| 9 class TransformerCache { | 9 class TransformerCache { |
| 10 final PackageGraph _graph; | 10 final PackageGraph _graph; |
| 11 Set<TransformerId> _oldTransformers; | 11 Set<TransformerId> _oldTransformers; |
| 12 Set<TransformerId> _newTransformers; | 12 Set<TransformerId> _newTransformers; |
| 13 String _dir; | 13 String _dir; |
| 14 String get _manifestPath => p.join(_dir, "manifest.txt"); | 14 String get _manifestPath => p.join(_dir, "manifest.txt"); |
| 15 TransformerCache.load(PackageGraph graph) | 15 TransformerCache.load(PackageGraph graph) |
| 16 : _graph = graph, | 16 : _graph = graph, |
| 17 _dir = graph.entrypoint.root.path(".pub/transformers") { | 17 _dir = graph.entrypoint.root.path(".pub/transformers") { |
| 18 _oldTransformers = _parseManifest(); | 18 _oldTransformers = _parseManifest(); |
| 19 } | 19 } |
| 20 void clearIfOutdated(Set<String> changedPackages) { | 20 void clearIfOutdated(Set<String> changedPackages) { |
| 21 var snapshotDependencies = unionAll(_oldTransformers.map((id) { | 21 var snapshotDependencies = unionAll(_oldTransformers.map((id) { |
| 22 if (!_graph.packages.containsKey(id.package)) return new Set(); |
| 22 return _graph.transitiveDependencies( | 23 return _graph.transitiveDependencies( |
| 23 id.package).map((package) => package.name).toSet(); | 24 id.package).map((package) => package.name).toSet(); |
| 24 })); | 25 })); |
| 25 if (!overlaps(changedPackages, snapshotDependencies)) return; | 26 if (!overlaps(changedPackages, snapshotDependencies)) return; |
| 26 deleteEntry(_dir); | 27 deleteEntry(_dir); |
| 27 _oldTransformers = new Set(); | 28 _oldTransformers = new Set(); |
| 28 } | 29 } |
| 29 String snapshotPath(Set<TransformerId> transformers) { | 30 String snapshotPath(Set<TransformerId> transformers) { |
| 30 var path = p.join(_dir, "transformers.snapshot"); | 31 var path = p.join(_dir, "transformers.snapshot"); |
| 31 if (_newTransformers != null) return path; | 32 if (_newTransformers != null) return path; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 59 if (!fileExists(_manifestPath)) return new Set(); | 60 if (!fileExists(_manifestPath)) return new Set(); |
| 60 var manifest = readTextFile(_manifestPath).split("\n"); | 61 var manifest = readTextFile(_manifestPath).split("\n"); |
| 61 if (manifest.removeAt(0) != sdk.version.toString()) { | 62 if (manifest.removeAt(0) != sdk.version.toString()) { |
| 62 deleteEntry(_dir); | 63 deleteEntry(_dir); |
| 63 return new Set(); | 64 return new Set(); |
| 64 } | 65 } |
| 65 return manifest.single.split( | 66 return manifest.single.split( |
| 66 ",").map((id) => new TransformerId.parse(id, null)).toSet(); | 67 ",").map((id) => new TransformerId.parse(id, null)).toSet(); |
| 67 } | 68 } |
| 68 } | 69 } |
| OLD | NEW |