infinity-forge
Version:
133 lines • 4.81 kB
JavaScript
;
/* eslint-disable no-underscore-dangle */
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
on: function (events, handler, priority) {
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (typeof handler !== 'function')
return self;
var method = priority ? 'unshift' : 'push';
events.split(' ').forEach(function (event) {
if (!self.eventsListeners[event])
self.eventsListeners[event] = [];
self.eventsListeners[event][method](handler);
});
return self;
},
once: function (events, handler, priority) {
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (typeof handler !== 'function')
return self;
function onceHandler() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
self.off(events, onceHandler);
if (onceHandler.__emitterProxy) {
delete onceHandler.__emitterProxy;
}
handler.apply(self, args);
}
onceHandler.__emitterProxy = handler;
return self.on(events, onceHandler, priority);
},
onAny: function (handler, priority) {
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (typeof handler !== 'function')
return self;
var method = priority ? 'unshift' : 'push';
if (self.eventsAnyListeners.indexOf(handler) < 0) {
self.eventsAnyListeners[method](handler);
}
return self;
},
offAny: function (handler) {
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (!self.eventsAnyListeners)
return self;
var index = self.eventsAnyListeners.indexOf(handler);
if (index >= 0) {
self.eventsAnyListeners.splice(index, 1);
}
return self;
},
off: function (events, handler) {
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (!self.eventsListeners)
return self;
events.split(' ').forEach(function (event) {
if (typeof handler === 'undefined') {
self.eventsListeners[event] = [];
}
else if (self.eventsListeners[event]) {
self.eventsListeners[event].forEach(function (eventHandler, index) {
if (eventHandler === handler ||
(eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)) {
self.eventsListeners[event].splice(index, 1);
}
});
}
});
return self;
},
emit: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var self = this;
if (!self.eventsListeners || self.destroyed)
return self;
if (!self.eventsListeners)
return self;
var events;
var data;
var context;
if (typeof args[0] === 'string' || Array.isArray(args[0])) {
events = args[0];
data = args.slice(1, args.length);
context = self;
}
else {
events = args[0].events;
data = args[0].data;
context = args[0].context || self;
}
data.unshift(context);
var eventsArray = Array.isArray(events) ? events : events.split(' ');
eventsArray.forEach(function (event) {
if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
self.eventsAnyListeners.forEach(function (eventHandler) {
eventHandler.apply(context, __spreadArray([event], data, true));
});
}
if (self.eventsListeners && self.eventsListeners[event]) {
self.eventsListeners[event].forEach(function (eventHandler) {
eventHandler.apply(context, data);
});
}
});
return self;
},
};
//# sourceMappingURL=events-emitter.js.map