Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
Add 'pipe' event
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeal authored and ry committed Feb 10, 2011
1 parent 583f2e5 commit 634e723
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
6 changes: 6 additions & 0 deletions doc/api/streams.markdown
Expand Up @@ -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'`
Expand Down
2 changes: 2 additions & 0 deletions lib/stream.js
Expand Up @@ -67,4 +67,6 @@ Stream.prototype.pipe = function(dest, options) {
dest.on('resume', function() {
if (source.readable) source.resume();
});

dest.emit('pipe', source);
};
27 changes: 27 additions & 0 deletions test/simple/test-stream-pipe-event.js
@@ -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.