UNPKG

@amadeus-it-group/microfrontends-angular

Version:
106 lines (103 loc) 3.48 kB
import { Message, MessagePeerType, RoutedMessage, ServiceMessage, MessageError, PeerConnectionFilter, PeerConnectionOptions, PeerSendOptions, PeerOptions } from '@amadeus-it-group/microfrontends'; import { Observable } from 'rxjs'; import * as i0 from '@angular/core'; import { OnDestroy, InjectionToken } from '@angular/core'; /** * Interface for the peer service that provides an observable for incoming messages */ interface MessagePeerServiceType<M extends Message> extends Omit<MessagePeerType<M>, 'messages' | 'serviceMessages' | 'errors'> { /** * Observable for incoming messages */ get messages$(): Observable<RoutedMessage<M>>; /** * Observable for incoming service messages */ get serviceMessages$(): Observable<RoutedMessage<ServiceMessage>>; /** * Observable for peer local errors when processing messages */ get errors$(): Observable<MessageError>; } /** * @inheritDoc */ interface MessagePeerConfig extends PeerOptions { } /** * Injection token for {@link MessagePeerConfig}, required for the {@link MessagePeerService} configuration. */ declare const MESSAGE_PEER_CONFIG: InjectionToken<MessagePeerConfig>; /** * Injection token for {@link PeerConnectionOptions} used as default options to pass to {@link MessagePeerService#connect}. */ declare const MESSAGE_PEER_CONNECT_OPTIONS: InjectionToken<PeerConnectionOptions>; /** * Injection token for {@link PeerConnectionOptions} used as default options to pass to {@link MessagePeerService#listen}. */ declare const MESSAGE_PEER_LISTEN_OPTIONS: InjectionToken<PeerConnectionFilter | PeerConnectionFilter[]>; /** * Angular service that wraps {@link MessagePeer} and provides an observable for incoming messages and errors * It is essentially just a wrapper around {@link MessagePeer} that integrates with Angular's DI system. */ declare class MessagePeerService<M extends Message> implements MessagePeerServiceType<M>, OnDestroy { #private; /** * @inheritDoc */ messages$: Observable<RoutedMessage<M>>; /** * @inheritDoc */ serviceMessages$: Observable<RoutedMessage<ServiceMessage>>; /** * @inheritDoc */ errors$: Observable<MessageError>; constructor(); /** * @inheritDoc */ get connectionFilters(): PeerConnectionFilter[]; /** * @inheritDoc */ set connectionFilters(value: PeerConnectionFilter[]); ngOnDestroy(): void; /** * @inheritDoc */ get id(): string; /** * @inheritDoc */ get knownPeers(): Map<string, Message[]>; /** * @inheritDoc */ get peerConnections(): Map<string, Set<string>>; /** * @inheritDoc */ listen(filters?: PeerConnectionFilter | PeerConnectionFilter[]): () => void; /** * @inheritDoc */ connect(remoteId: string, options?: PeerConnectionOptions): Promise<() => void>; /** * @inheritDoc */ registerMessage(message: Message): void; /** * @inheritDoc */ send(message: M, options?: PeerSendOptions): void; /** * @inheritDoc */ disconnect(peerId?: string): void; static ɵfac: i0.ɵɵFactoryDeclaration<MessagePeerService<any>, never>; static ɵprov: i0.ɵɵInjectableDeclaration<MessagePeerService<any>>; } export { MESSAGE_PEER_CONFIG, MESSAGE_PEER_CONNECT_OPTIONS, MESSAGE_PEER_LISTEN_OPTIONS, MessagePeerService }; export type { MessagePeerConfig, MessagePeerServiceType };