Permalink
Browse files

Add 'pipe' event

  • Loading branch information...
1 parent 583f2e5 commit 634e7236f7456432107d05fe8ec5f8da19a6abe4 @mikeal mikeal committed with ry Feb 10, 2011
Showing with 35 additions and 0 deletions.
  1. +6 −0 doc/api/streams.markdown
  2. +2 −0 lib/stream.js
  3. +27 −0 test/simple/test-stream-pipe-event.js
View
@@ -125,6 +125,12 @@ Emitted on error with the exception `exception`.
Emitted when the underlying file descriptor has been closed.
+### Event: 'pipe'
+
+`function (src) { }`
+
+Emitted when the stream is passed to a readable stream's pipe method.
+
### stream.writable
A boolean that is `true` by default, but turns `false` after an `'error'`
View
@@ -67,4 +67,6 @@ Stream.prototype.pipe = function(dest, options) {
dest.on('resume', function() {
if (source.readable) source.resume();
});
+
+ dest.emit('pipe', source);
};
@@ -0,0 +1,27 @@
+var stream = require('stream');
+var assert = require('assert');
+var util = require('util');
+
+function Writable () {
+ this.writable = true;
+ stream.Stream.call(this);
+}
+util.inherits(Writable, stream.Stream);
+
+function Readable () {
+ this.readable = true;
+ stream.Stream.call(this);
+}
+util.inherits(Readable, stream.Stream);
+
+var passed = false;
+
+var w = new Writable();
+w.on('pipe', function (src) {
+ passed = true;
+});
+
+var r = new Readable();
+r.pipe(w);
+
+assert.ok(passed)

0 comments on commit 634e723

Please sign in to comment.