@haiku/player
Version:
Haiku Player is a JavaScript library for building user interfaces
57 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function create(instance) {
var registry = {};
var eavesdroppers = [];
instance.on = function on(key, fn) {
if (!registry[key]) {
registry[key] = [];
}
for (var i = 0; i < registry[key].length; i++) {
if (registry[key][i] === fn) {
return this;
}
}
registry[key].push(fn);
return this;
};
instance.off = function off(key, fn) {
var listeners = registry[key];
if (!listeners || listeners.length < 1) {
return this;
}
for (var i = 0; i < listeners.length; i++) {
if (fn && listeners[i] === fn) {
listeners.splice(i, 1);
}
else {
listeners.splice(i, 1);
}
}
return this;
};
instance.emit = function emit(key, msg, a, b, c, d, e, f, g, h, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) {
var listeners = registry[key];
if (listeners && listeners.length > 0) {
for (var i = 0; i < listeners.length; i++) {
listeners[i](msg, a, b, c, d, e, f, g, h, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z);
}
}
if (eavesdroppers.length > 0) {
for (var j = 0; j < eavesdroppers.length; j++) {
eavesdroppers[j](key, msg, a, b, c, d, e, f, g, h, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z);
}
}
return this;
};
instance.hear = function hear(fn) {
eavesdroppers.push(fn);
};
instance._registry = registry;
instance._eavesdroppers = eavesdroppers;
return instance;
}
exports.default = {
create: create,
};
//# sourceMappingURL=SimpleEventEmitter.js.map