import dotenv from 'dotenv'; import { BehaviorSubject, distinctUntilChanged, filter, map, Observable, Subject } from 'rxjs'; import { WrappedMessage } from '../utils/message.ordering'; import ConsoleLogger from '../utils/log.utils'; import { AdapterBase } from '../base/adapter.base'; import { ClientObject, ConnectionState, FisMessage, TransportType, TransportMessage, TransportServiceInterface, TransmissionRole } from '../interface/interface'; dotenv.config(); export class TransmitterAdapter extends AdapterBase { constructor(clientId: string, adapterType: TransportType, transportService: TransportServiceInterface, role: TransmissionRole) { super(clientId, adapterType, transportService, role) this.console = new ConsoleLogger(`${this.adapterProfile.transportType}TransmitterAdapter`, ['adapter']) this.console.log({ message: `Contructing TransmitterAdapter for client: ${this.adapterProfile.clientId}` }) } emit(selfId: string, message: WrappedMessage): void { // logic here // this.console.log({ message: `Emitting: ${(message.payload as FisMessage).header.messageID} to ${this.adapterProfile.clientId}` }) this.console.log({ message: `Emitting: ${message.thisMessageID} to ${this.adapterProfile.clientId}` }) this.adapterProfile.transportService.emit({ id: this.adapterProfile.clientId, dateCreated: new Date(), transport: this.adapterProfile.transportType, target: this.adapterProfile.clientId, source: selfId, payload: message } as TransportMessage) } }