arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
comunicationLeap/node_modules/pause/index.js
node_modules/pause/index.jsRaw
 1
 2module.exports = function(obj){
 3  var onData
 4    , onEnd
 5    , events = [];
 6
 7  // buffer data
 8  obj.on('data', onData = function(data, encoding){
 9    events.push(['data', data, encoding]);
10  });
11
12  // buffer end
13  obj.on('end', onEnd = function(data, encoding){
14    events.push(['end', data, encoding]);
15  });
16
17  return {
18    end: function(){
19      obj.removeListener('data', onData);
20      obj.removeListener('end', onEnd);
21    },
22    resume: function(){
23      this.end();
24      for (var i = 0, len = events.length; i < len; ++i) {
25        obj.emit.apply(obj, events[i]);
26      }
27    }
28  };
29};