init
This commit is contained in:
241
nv/html/nv-nopdf/styles/packages/raix_eventemitter.js
Normal file
241
nv/html/nv-nopdf/styles/packages/raix_eventemitter.js
Normal file
@@ -0,0 +1,241 @@
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// This is a generated file. You can view the original //
|
||||
// source in your browser if your browser supports source maps. //
|
||||
// Source maps are supported by all recent versions of Chrome, Safari, //
|
||||
// and Firefox, and by Internet Explorer 11. //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
(function () {
|
||||
|
||||
/* Imports */
|
||||
var Meteor = Package.meteor.Meteor;
|
||||
var global = Package.meteor.global;
|
||||
var meteorEnv = Package.meteor.meteorEnv;
|
||||
var _ = Package.underscore._;
|
||||
|
||||
/* Package-scope variables */
|
||||
var EventEmitter;
|
||||
|
||||
(function(){
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// packages/raix_eventemitter/packages/raix_eventemitter.js //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
(function () {
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// packages/raix:eventemitter/eventemitter.client.js //
|
||||
// //
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
/* global EventEmitter: true */ // 1
|
||||
EventEmitter = function(options) { // 2
|
||||
var self = this; // 3
|
||||
// Check that the user uses "new" keyword for api consistency // 4
|
||||
if (! (self instanceof EventEmitter)) { // 5
|
||||
throw new Error('use "new" to construct an EventEmitter'); // 6
|
||||
} // 7
|
||||
// 8
|
||||
options = options || {}; // 9
|
||||
// 10
|
||||
// Hidden scope // 11
|
||||
self._eventEmitter = { // 12
|
||||
onListeners: {}, // 13
|
||||
onceListeners: {}, // 14
|
||||
maxListeners: options.maxListeners || 10 // 15
|
||||
}; // 16
|
||||
}; // 17
|
||||
// 18
|
||||
var _checkListenerLimit = function(eventName, listenerCount) { // 19
|
||||
var self = this; // 20
|
||||
// Check if we are to send a warning // 21
|
||||
if (self._eventEmitter.maxListeners && listenerCount > self._eventEmitter.maxListeners) { // 22
|
||||
// Return string // 23
|
||||
return 'warning: possible EventEmitter memory leak detected. ' + // 24
|
||||
listenerCount + ' listeners added on event "' + eventName + // 25
|
||||
'". Use emitter.setMaxListeners() to increase limit. (' + // 26
|
||||
self._eventEmitter.maxListeners + ')'; // 27
|
||||
// 28
|
||||
} // 29
|
||||
}; // 30
|
||||
// 31
|
||||
// By default EventEmitters will print a warning if more than 10 listeners are // 32
|
||||
// added for a particular event. This is a useful default which helps finding // 33
|
||||
// memory leaks. Obviously not all Emitters should be limited to 10. This function // 34
|
||||
// allows that to be increased. Set to zero for unlimited. // 35
|
||||
EventEmitter.prototype.setMaxListeners = function(n) { // 36
|
||||
this._eventEmitter.maxListeners = n; // 37
|
||||
}; // 38
|
||||
// 39
|
||||
var _addToList = function(list, eventName, listener) { // 40
|
||||
// Check that we have a container for the event, Create listener array // 41
|
||||
if (typeof list[eventName] === 'undefined') { // 42
|
||||
list[eventName] = []; // 43
|
||||
} // 44
|
||||
// 45
|
||||
// Make sure the listener is not in there already? // 46
|
||||
// We have to comment this to be compliant with node.js // 47
|
||||
// list[eventName] = _.without(list[eventName], listener); // 48
|
||||
// 49
|
||||
// Add the listener and Check the limit // 50
|
||||
return _checkListenerLimit.apply(this, [eventName, list[eventName].push(listener)]); // 51
|
||||
}; // 52
|
||||
// 53
|
||||
// Adds a listener to the end of the listeners array for the specified event. // 54
|
||||
// server.on('connection', function (stream) { // 55
|
||||
// console.log('someone connected!'); // 56
|
||||
// }); // 57
|
||||
// Returns emitter, so calls can be chained. // 58
|
||||
EventEmitter.prototype.on = function(eventName, listener) { // 59
|
||||
var warn = _addToList.apply(this, [this._eventEmitter.onListeners, eventName, listener]); // 60
|
||||
// 61
|
||||
// Warn if needed // 62
|
||||
if (warn) { // 63
|
||||
console.warn((new Error(warn)).stack); // 64
|
||||
} // 65
|
||||
// 66
|
||||
// Return the emitter // 67
|
||||
return this; // 68
|
||||
}; // 69
|
||||
// 70
|
||||
// Adds a one time listener for the event. This listener is invoked // 71
|
||||
// only the next time the event is fired, after which it is removed. // 72
|
||||
EventEmitter.prototype.once = function(eventName, listener) { // 73
|
||||
var warn = _addToList.apply(this, [this._eventEmitter.onceListeners, eventName, listener]); // 74
|
||||
// 75
|
||||
// Warn if needed // 76
|
||||
if (warn) { // 77
|
||||
console.warn((new Error(warn)).stack); // 78
|
||||
} // 79
|
||||
// 80
|
||||
// Return the emitter // 81
|
||||
return this; // 82
|
||||
}; // 83
|
||||
// 84
|
||||
var _runCallbacks = function(listenerArray, args) { // 85
|
||||
var self = this; // 86
|
||||
// count of listeners triggered // 87
|
||||
var count = 0; // 88
|
||||
// Check if we have anything to work with // 89
|
||||
if (typeof listenerArray !== 'undefined') { // 90
|
||||
// Try to iterate over the listeners // 91
|
||||
_.each(listenerArray, function(listener) { // 92
|
||||
// Count listener calls // 93
|
||||
count++; // 94
|
||||
// Send the job to the eventloop // 95
|
||||
listener.apply(self, args); // 96
|
||||
}); // 97
|
||||
} // 98
|
||||
// 99
|
||||
// Return the count // 100
|
||||
return count; // 101
|
||||
}; // 102
|
||||
// 103
|
||||
// emitter.emit(event, [arg1], [arg2], [...])# // 104
|
||||
// Execute each of the listeners in order with the supplied arguments. // 105
|
||||
EventEmitter.prototype.emit = function(eventName /* arguments */) { // 106
|
||||
var self = this; // 107
|
||||
// make argument list to pass on to listeners // 108
|
||||
var args = _.rest(arguments); // 109
|
||||
// 110
|
||||
// Count listeners triggered // 111
|
||||
var count = 0; // 112
|
||||
// 113
|
||||
// Swap once list // 114
|
||||
var onceList = self._eventEmitter.onceListeners[eventName]; // 115
|
||||
// 116
|
||||
// Empty the once list // 117
|
||||
self._eventEmitter.onceListeners[eventName] = []; // 118
|
||||
// 119
|
||||
// Trigger on listeners // 120
|
||||
count += _runCallbacks.call(self, self._eventEmitter.onListeners[eventName], args); // 121
|
||||
// 122
|
||||
// Trigger once listeners // 123
|
||||
count += _runCallbacks.call(self, onceList, args); // 124
|
||||
// 125
|
||||
// Returns true if event had listeners, false otherwise. // 126
|
||||
return (count > 0); // 127
|
||||
}; // 128
|
||||
// 129
|
||||
// XXX: When removing a listener in node js it only removes one - not all. // 130
|
||||
var _withoutOne = function(list, obj) { // 131
|
||||
var found = false; // 132
|
||||
var result = []; // 133
|
||||
// 134
|
||||
// Iterate over listeners // 135
|
||||
for (var i = 0; i < list.length; i++) { // 136
|
||||
// Check if we found one... // 137
|
||||
if (!found && list[i] === obj) { // 138
|
||||
found = true; // 139
|
||||
} else { // 140
|
||||
result.push(list[i]); // 141
|
||||
} // 142
|
||||
} // 143
|
||||
// 144
|
||||
// return the new array // 145
|
||||
return result; // 146
|
||||
}; // 147
|
||||
// 148
|
||||
// Removes all listeners, or those of the specified event. It's not a // 149
|
||||
// good idea to remove listeners that were added elsewhere in the code, // 150
|
||||
// especially when it's on an emitter that you didn't create (e.g. sockets // 151
|
||||
// or file streams). // 152
|
||||
// Returns emitter, so calls can be chained. // 153
|
||||
EventEmitter.prototype.off = function(eventName, listener) { // 154
|
||||
var self = this; // 155
|
||||
if (eventName) { // 156
|
||||
if (typeof listener === 'function') { // 157
|
||||
// its a bit more tricky - we have to iterate over the arrays and only // 158
|
||||
// clone listeners not equal to // 159
|
||||
if (typeof self._eventEmitter.onListeners[eventName] !== 'undefined') { // 160
|
||||
self._eventEmitter.onListeners[eventName] = _withoutOne(self._eventEmitter.onListeners[eventName], listener); // 161
|
||||
// 162
|
||||
} // 163
|
||||
if (typeof self._eventEmitter.onceListeners[eventName] !== 'undefined') { // 164
|
||||
self._eventEmitter.onceListeners[eventName] = _withoutOne(self._eventEmitter.onceListeners[eventName], listener);
|
||||
// 166
|
||||
} // 167
|
||||
} else { // 168
|
||||
// Remove all listeners for eventName // 169
|
||||
self._eventEmitter.onListeners[eventName] = []; // 170
|
||||
self._eventEmitter.onceListeners[eventName] = []; // 171
|
||||
} // 172
|
||||
// 173
|
||||
} else { // 174
|
||||
// Remove all listeners // 175
|
||||
self._eventEmitter.onListeners = {}; // 176
|
||||
self._eventEmitter.onceListeners = {}; // 177
|
||||
} // 178
|
||||
}; // 179
|
||||
// 180
|
||||
// Add api helpers // 181
|
||||
EventEmitter.prototype.addListener = EventEmitter.prototype.on; // 182
|
||||
EventEmitter.prototype.removeListener = EventEmitter.prototype.off; // 183
|
||||
EventEmitter.prototype.removeAllListeners = EventEmitter.prototype.off; // 184
|
||||
// 185
|
||||
// Add jquery like helpers // 186
|
||||
EventEmitter.prototype.one = EventEmitter.prototype.once; // 187
|
||||
EventEmitter.prototype.trigger = EventEmitter.prototype.emit; // 188
|
||||
// 189
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
}).call(this);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
}).call(this);
|
||||
|
||||
|
||||
/* Exports */
|
||||
Package._define("raix:eventemitter", {
|
||||
EventEmitter: EventEmitter
|
||||
});
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user