| Index: pkg/barback/lib/src/transform.dart
|
| diff --git a/pkg/barback/lib/src/transform.dart b/pkg/barback/lib/src/transform.dart
|
| index cb5175305c7a05339079dbecc1f4aba2db92c8d9..3eb3a29ba16a9b03a7309b2d0aa1f557eb0bb6d2 100644
|
| --- a/pkg/barback/lib/src/transform.dart
|
| +++ b/pkg/barback/lib/src/transform.dart
|
| @@ -67,9 +67,17 @@ class Transform {
|
| // results stream.
|
| if (node == null) throw new MissingInputException(id);
|
|
|
| - // Keep track of which assets this transform depends on.
|
| - _inputs.add(node);
|
| - return node.asset;
|
| + // If the asset node is found, wait until its contents are actually
|
| + // available before we return them.
|
| + return node.whenAvailable.then((asset) {
|
| + _inputs.add(node);
|
| + return asset;
|
| + }).catchError((error) {
|
| + if (error is! AssetNotFoundException || error.id != id) throw error;
|
| + // If the node was removed before it could be loaded, treat it as though
|
| + // it never existed and throw a MissingInputException.
|
| + throw new MissingInputException(id);
|
| + });
|
| });
|
| }
|
|
|
|
|