Open
Description
Исторически мы юзаем везде библиотеку eventemitter2. Она прекрасна, но это определенная завязка на их АПИ + у неё нет интерфейса итераторов.
Что хочется сделать. Модуль core/event-emitter, которые будет реализовывать стандартный АПИ event-emitter, а также предоставлять поточный интерфейс. Но при этом, модуль должен поддерживать разные источники событий, например, тот же eventemitter2.
Как лучше задизайнить АПИ, чтобы оно было удобным и расширяемым надо подумать. Также, нужно дать возможность пробрасывать доп настройки внутрь стратегий. Например, у eventemitter2 есть поддержка паттернов.
Например
import EventEmitter from 'core/event-emitter';
const ee = new EventEmitter();
ee.on('foo', cb);
ee.on('foo') // поток