Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / pause / index.js
1 /*!
2  * pause
3  * Copyright(c) 2012 TJ Holowaychuk
4  * Copyright(c) 2015 Douglas Christopher Wilson
5  * MIT Licensed
6  */
7
8 'use strict'
9
10 /**
11  * Module exports.
12  * @public
13  */
14
15 module.exports = pause
16
17 /**
18  * Pause the data events on a stream.
19  *
20  * @param {object} stream
21  * @public
22  */
23
24 function pause(stream) {
25   var events = []
26   var onData = createEventListener('data', events)
27   var onEnd = createEventListener('end', events)
28
29   // buffer data
30   stream.on('data', onData)
31
32   // buffer end
33   stream.on('end', onEnd)
34
35   return {
36     end: function end() {
37       stream.removeListener('data', onData)
38       stream.removeListener('end', onEnd)
39     },
40     resume: function resume() {
41       this.end()
42
43       for (var i = 0; i < events.length; i++) {
44         stream.emit.apply(stream, events[i])
45       }
46     }
47   }
48 }
49
50 function createEventListener(name, events) {
51   return function onEvent() {
52     var args = new Array(arguments.length + 1)
53
54     args[0] = name
55     for (var i = 0; i < arguments.length; i++) {
56       args[i + 1] = arguments[i]
57     }
58
59     events.push(args)
60   }
61 }