@cimo/jsmvcfw
Version:
Javascript mvc framework. Light, fast and secure.
39 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class Emitter {
listenerObject = {};
on(event, listener) {
if (!this.listenerObject[event]) {
this.listenerObject[event] = [];
}
this.listenerObject[event].push(listener);
}
emit(event, ...[payload]) {
const listenerEventList = this.listenerObject[event];
if (listenerEventList) {
for (const listener of listenerEventList) {
listener(payload);
}
}
}
off(event, listener, isRemoveAll = false) {
const listenerEventList = this.listenerObject[event];
if (listenerEventList) {
if (isRemoveAll) {
for (let a = listenerEventList.length - 1; a >= 0; a--) {
if (listenerEventList[a] === listener) {
listenerEventList.splice(a, 1);
}
}
}
else {
const index = listenerEventList.indexOf(listener);
if (index !== -1) {
listenerEventList.splice(index, 1);
}
}
}
}
}
exports.default = Emitter;
//# sourceMappingURL=JsMvcFwEmitter.js.map