diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/pause/index.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/pause/index.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/pause/index.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/pause/index.js new file mode 100644 index 00000000..8bc7d958 --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/pause/index.js @@ -0,0 +1,61 @@ +/*! + * pause + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = pause + +/** + * Pause the data events on a stream. + * + * @param {object} stream + * @public + */ + +function pause(stream) { + var events = [] + var onData = createEventListener('data', events) + var onEnd = createEventListener('end', events) + + // buffer data + stream.on('data', onData) + + // buffer end + stream.on('end', onEnd) + + return { + end: function end() { + stream.removeListener('data', onData) + stream.removeListener('end', onEnd) + }, + resume: function resume() { + this.end() + + for (var i = 0; i < events.length; i++) { + stream.emit.apply(stream, events[i]) + } + } + } +} + +function createEventListener(name, events) { + return function onEvent() { + var args = new Array(arguments.length + 1) + + args[0] = name + for (var i = 0; i < arguments.length; i++) { + args[i + 1] = arguments[i] + } + + events.push(args) + } +} |