unreadableReason method

Future<UnreadableReason?> unreadableReason(
  1. AssetId id
)

Returns a reason why id is not readable, or null if it is readable.

Implementation

Future<UnreadableReason?> unreadableReason(AssetId id) async {
  if (!_assetGraph.contains(id)) return UnreadableReason.notFound;
  var node = _assetGraph.get(id)!;
  if (_optionalOutputTracker != null &&
      !_optionalOutputTracker!.isRequired(node.id)) {
    return UnreadableReason.notOutput;
  }
  if (node.isDeleted) return UnreadableReason.deleted;
  if (!node.isReadable) return UnreadableReason.assetType;
  if (node is GeneratedAssetNode) {
    if (node.isFailure) return UnreadableReason.failed;
    if (!node.wasOutput) return UnreadableReason.notOutput;
  }
  if (await _delegate.canRead(id)) return null;
  return UnreadableReason.unknown;
}