UNPKG

@amadeus-it-group/microfrontends-angular

Version:
97 lines (96 loc) 3.23 kB
import { Message, MessageError, MessagePeerType, PeerConnectionOptions, PeerSendOptions, RoutedMessage, ServiceMessage } from '@amadeus-it-group/microfrontends'; import { Observable } from 'rxjs'; import { InjectionToken } from '@angular/core'; import * as i0 from "@angular/core"; /** * Interface for the peer service that provides an observable for incoming messages */ export 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>; } /** * Configuration for the peer service that should be provided in the DI container before using the service */ export interface MessagePeerConfig { /** * Unique peer identifier on the network */ id: string; /** * List of known messages that the peer can receive */ knownMessages?: Message[]; } /** * Injection token for {@link MessagePeerConfig}, required for the {@link MessagePeerService} configuration. */ export declare const MESSAGE_PEER_CONFIG: InjectionToken<MessagePeerConfig>; /** * Injection token for {@link PeerConnectionOptions} used as default options to pass to {@link MessagePeerService#connect}. */ export declare const MESSAGE_PEER_CONNECT_OPTIONS: InjectionToken<PeerConnectionOptions>; /** * Injection token for {@link PeerConnectionOptions} used as default options to pass to {@link MessagePeerService#listen}. */ export declare const MESSAGE_PEER_LISTEN_OPTIONS: InjectionToken<PeerConnectionOptions>; /** * 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. */ export declare class MessagePeerService<M extends Message> implements MessagePeerServiceType<M> { #private; /** * @inheritDoc */ messages$: Observable<RoutedMessage<M>>; /** * @inheritDoc */ serviceMessages$: Observable<RoutedMessage<ServiceMessage>>; /** * @inheritDoc */ errors$: Observable<MessageError>; constructor(); /** * @inheritDoc */ get id(): string; /** * @inheritDoc */ get knownPeers(): Map<string, Message[]>; /** * @inheritDoc */ listen(peerId: string, options?: PeerConnectionOptions): Promise<() => void>; /** * @inheritDoc */ connect(peerId: 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>>; }