@@ -18,9 +18,11 @@ import '../asset_graph/optional_output_tracker.dart';
18
18
import '../generate/phase.dart' ;
19
19
import '../package_graph/target_graph.dart' ;
20
20
21
- /// An [AssetReader] which ignores deleted files.
22
- class FinalizedReader implements AssetReader , AssetReaderState {
23
- @override
21
+ /// A view of the build output.
22
+ ///
23
+ /// If [canRead] returns false, [unreadableReason] explains why the file is
24
+ /// missing; for example, it might say that generation failed.
25
+ class FinalizedReader {
24
26
late final AssetFinder assetFinder = FunctionAssetFinder (_findAssets);
25
27
26
28
final AssetReader _delegate;
@@ -38,12 +40,6 @@ class FinalizedReader implements AssetReader, AssetReaderState {
38
40
FinalizedReader (this ._delegate, this ._assetGraph, this ._targetGraph,
39
41
this ._buildPhases, this ._rootPackage);
40
42
41
- @override
42
- AssetPathProvider ? get assetPathProvider => _delegate.assetPathProvider;
43
-
44
- @override
45
- InputTracker ? get inputTracker => _delegate.inputTracker;
46
-
47
43
/// Returns a reason why [id] is not readable, or null if it is readable.
48
44
Future <UnreadableReason ?> unreadableReason (AssetId id) async {
49
45
if (! _assetGraph.contains (id)) return UnreadableReason .notFound;
@@ -62,28 +58,20 @@ class FinalizedReader implements AssetReader, AssetReaderState {
62
58
return UnreadableReason .unknown;
63
59
}
64
60
65
- @override
66
61
Future <bool > canRead (AssetId id) async =>
67
62
(await unreadableReason (id)) == null ;
68
63
69
- @override
70
64
Future <Digest > digest (AssetId id) => _delegate.digest (id);
71
65
72
- @override
73
66
Future <List <int >> readAsBytes (AssetId id) => _delegate.readAsBytes (id);
74
67
75
- @override
76
68
Future <String > readAsString (AssetId id, {Encoding encoding = utf8}) async {
77
69
if (_assetGraph.get (id)? .isDeleted ?? true ) {
78
70
throw AssetNotFoundException (id);
79
71
}
80
72
return _delegate.readAsString (id, encoding: encoding);
81
73
}
82
74
83
- // This is only for generators, so only `BuildStep` needs to implement it.
84
- @override
85
- Stream <AssetId > findAssets (Glob glob_) => throw UnimplementedError ();
86
-
87
75
Stream <AssetId > _findAssets (Glob glob, String ? _) async * {
88
76
var potentialNodes = _assetGraph
89
77
.packageNodes (_rootPackage)
0 commit comments