Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / socket.io-client / components / visionmedia-debug / debug.js
1
2 /**
3  * Expose `debug()` as the module.
4  */
5
6 module.exports = debug;
7
8 /**
9  * Create a debugger with the given `name`.
10  *
11  * @param {String} name
12  * @return {Type}
13  * @api public
14  */
15
16 function debug(name) {
17   if (!debug.enabled(name)) return function(){};
18
19   return function(fmt){
20     var curr = new Date;
21     var ms = curr - (debug[name] || curr);
22     debug[name] = curr;
23
24     fmt = name
25       + ' '
26       + fmt
27       + ' +' + debug.humanize(ms);
28
29     // This hackery is required for IE8
30     // where `console.log` doesn't have 'apply'
31     window.console
32       && console.log
33       && Function.prototype.apply.call(console.log, console, arguments);
34   }
35 }
36
37 /**
38  * The currently active debug mode names.
39  */
40
41 debug.names = [];
42 debug.skips = [];
43
44 /**
45  * Enables a debug mode by name. This can include modes
46  * separated by a colon and wildcards.
47  *
48  * @param {String} name
49  * @api public
50  */
51
52 debug.enable = function(name) {
53   localStorage.debug = name;
54
55   var split = (name || '').split(/[\s,]+/)
56     , len = split.length;
57
58   for (var i = 0; i < len; i++) {
59     name = split[i].replace('*', '.*?');
60     if (name[0] === '-') {
61       debug.skips.push(new RegExp('^' + name.substr(1) + '$'));
62     }
63     else {
64       debug.names.push(new RegExp('^' + name + '$'));
65     }
66   }
67 };
68
69 /**
70  * Disable debug output.
71  *
72  * @api public
73  */
74
75 debug.disable = function(){
76   debug.enable('');
77 };
78
79 /**
80  * Humanize the given `ms`.
81  *
82  * @param {Number} m
83  * @return {String}
84  * @api private
85  */
86
87 debug.humanize = function(ms) {
88   var sec = 1000
89     , min = 60 * 1000
90     , hour = 60 * min;
91
92   if (ms >= hour) return (ms / hour).toFixed(1) + 'h';
93   if (ms >= min) return (ms / min).toFixed(1) + 'm';
94   if (ms >= sec) return (ms / sec | 0) + 's';
95   return ms + 'ms';
96 };
97
98 /**
99  * Returns true if the given mode name is enabled, false otherwise.
100  *
101  * @param {String} name
102  * @return {Boolean}
103  * @api public
104  */
105
106 debug.enabled = function(name) {
107   for (var i = 0, len = debug.skips.length; i < len; i++) {
108     if (debug.skips[i].test(name)) {
109       return false;
110     }
111   }
112   for (var i = 0, len = debug.names.length; i < len; i++) {
113     if (debug.names[i].test(name)) {
114       return true;
115     }
116   }
117   return false;
118 };
119
120 // persist
121
122 if (window.localStorage) debug.enable(localStorage.debug);