Index: lib/src/utils.dart |
diff --git a/lib/src/utils.dart b/lib/src/utils.dart |
index 6b0939fe5ccf805bcf9ffb33e5e9d86b045eb1c1..a1199bcd583894bb94bb6406be404ab506d712ec 100644 |
--- a/lib/src/utils.dart |
+++ b/lib/src/utils.dart |
@@ -63,3 +63,13 @@ List flatten(Iterable nested) { |
helper(nested); |
return result; |
} |
+ |
+/// Returns a sink that maps events sent to [original] using [fn]. |
+StreamSink mapSink(StreamSink original, fn(event)) { |
+ var controller = new StreamController(sync: true); |
+ controller.stream.listen( |
+ (event) => original.add(fn(event)), |
+ onError: (error, stackTrace) => original.addError(error, stackTrace), |
+ onDone: () => original.close()); |
+ return controller.sink; |
+} |