29 lines
595 B
JavaScript
29 lines
595 B
JavaScript
|
|
||
|
module.exports = function(obj){
|
||
|
var onData
|
||
|
, onEnd
|
||
|
, events = [];
|
||
|
|
||
|
// buffer data
|
||
|
obj.on('data', onData = function(data, encoding){
|
||
|
events.push(['data', data, encoding]);
|
||
|
});
|
||
|
|
||
|
// buffer end
|
||
|
obj.on('end', onEnd = function(data, encoding){
|
||
|
events.push(['end', data, encoding]);
|
||
|
});
|
||
|
|
||
|
return {
|
||
|
end: function(){
|
||
|
obj.removeListener('data', onData);
|
||
|
obj.removeListener('end', onEnd);
|
||
|
},
|
||
|
resume: function(){
|
||
|
this.end();
|
||
|
for (var i = 0, len = events.length; i < len; ++i) {
|
||
|
obj.emit.apply(obj, events[i]);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
};
|