import { Injectable } from '@angular/core'; import { WebTypedCallInfo, WebTypedFunction } from '@guimabdo/webtyped-common'; import { Subject, Observable } from 'rxjs'; import { filter } from 'rxjs/operators'; @Injectable() export class WebTypedEventEmitterService { private _eventBus: Subject> = new Subject>(); constructor() { } on = (f: WebTypedFunction): Observable> => { var obs:any = this._eventBus.pipe( filter(e => { return e.func == f; }) ); return >>obs; }; emit = (info: WebTypedCallInfo): void => { this._eventBus.next(info); }; }