import { Injectable, Inject } from '@angular/core'; import { Store, select } from '@ngrx/store'; import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { RPCClient } from 'packages/core/rpc/client/RPCClient'; import { RPCClientCodec } from 'packages/core/rpc/protocol/RPCClientCodec'; import { RPCClientRWC } from 'packages/core/rpc/client/rwc/RPCClientRWC'; import { RPCClientNotificationCodec } from 'packages/core/rpc/protocol/RPCClientCodec'; import { notificationAction } from 'packages/core/rpc/store/notification'; import * as AppStore from '../store'; @Injectable() export class RPCService extends RPCClient { constructor( private _rpcClientCodec: RPCClientCodec, private _rpcClientRWC: RPCClientRWC, private store: Store, ) { super(_rpcClientCodec, _rpcClientRWC); } protected onNotification(notiCodec: RPCClientNotificationCodec): void { this.store.dispatch(notificationAction(notiCodec.method(), notiCodec.params())); } }