2025-10-01 19:55:38 +02:00

55 lines
1.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function getEventBag(_this, event) {
if (!_this.__events)
_this.__events = {};
if (event && !_this.__events[event]) {
_this.__events[event] = {
all: [],
named: {}
};
return _this.__events[event];
}
return event ? _this.__events[event] : _this.__events;
}
function invoke(event, arg, subjectResource, details) {
var events = getEventBag(this, event);
events.all.forEach(function (e) { return process.nextTick(function () { return e(arg, subjectResource, details); }); });
}
exports.invoke = invoke;
function register(event, listener) {
var events = getEventBag(this, event);
events.all.push(listener);
}
exports.register = register;
function registerWithName(event, name, listener) {
var events = getEventBag(this, event);
events.all.push(listener);
events.named[name] = listener;
}
exports.registerWithName = registerWithName;
function clear(event) {
var events = getEventBag(this, event);
events.all = [];
events.named = {};
}
exports.clear = clear;
function clearAll(event) {
this.__events = {};
}
exports.clearAll = clearAll;
function remove(event, listener) {
var events = getEventBag(this, event);
events.all.indexOf(listener);
}
exports.remove = remove;
function removeByName(event, name) {
var events = getEventBag(this, event);
var listener = events.named[name];
if (listener) {
delete events.named[name];
events.all.splice(events.all.indexOf(listener), 1);
}
}
exports.removeByName = removeByName;