3 * Copyright(c) 2012 TJ Holowaychuk
4 * Copyright(c) 2015 Douglas Christopher Wilson
15 module.exports = pause
18 * Pause the data events on a stream.
20 * @param {object} stream
24 function pause(stream) {
26 var onData = createEventListener('data', events)
27 var onEnd = createEventListener('end', events)
30 stream.on('data', onData)
33 stream.on('end', onEnd)
37 stream.removeListener('data', onData)
38 stream.removeListener('end', onEnd)
40 resume: function resume() {
43 for (var i = 0; i < events.length; i++) {
44 stream.emit.apply(stream, events[i])
50 function createEventListener(name, events) {
51 return function onEvent() {
52 var args = new Array(arguments.length + 1)
55 for (var i = 0; i < arguments.length; i++) {
56 args[i + 1] = arguments[i]