@gravity-ui/uikit
Version:
Gravity UI base styling and components
28 lines (27 loc) • 672 B
JavaScript
export class EventEmitter {
listeners;
constructor() {
this.listeners = [];
}
destroy() {
this.listeners = [];
}
subscribe(listener) {
if (typeof listener === 'function') {
this.listeners.push(listener);
}
return () => {
this.listeners = this.listeners.filter((currentListener) => listener !== currentListener);
};
}
notify(data) {
if (this.listeners.length === 0) {
return false;
}
for (const listener of this.listeners) {
listener(data);
}
return true;
}
}
//# sourceMappingURL=EventEmitter.js.map