sahara
Version:
An inversion-of-control container for managing dependencies. Supports constructor, property and method injection
31 lines • 825 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventEmitter = void 0;
class EventEmitter {
constructor() {
this.events = {};
}
listeners(name) {
if (!this.events[name]) {
this.events[name] = [];
}
return this.events[name];
}
on(name, listener) {
this.listeners(name).push(listener);
}
off(name, listener) {
const listeners = this.listeners(name);
const index = listeners.indexOf(listener);
if (index !== -1) {
listeners.splice(index, 1);
}
}
emit(name, ...args) {
this.listeners(name).forEach((listener) => {
listener.apply(this, args);
});
}
}
exports.EventEmitter = EventEmitter;
//# sourceMappingURL=event-emitter.js.map