UNPKG

jspurefix

Version:
30 lines (26 loc) 1.16 kB
import { FixmlEncoder } from '../../buffer/fixml' import { IJsFixConfig } from '../../config' import { MsgTransmitter } from '../msg-transmitter' import { ILooseObject } from '../../collections/collection' import { inject, injectable } from 'tsyringe' import { DITokens } from '../../runtime/di-tokens' import { ElasticBuffer } from '../../buffer' @injectable() export class FixmlMsgTransmitter extends MsgTransmitter { public time: Date constructor (@inject(DITokens.IJsFixConfig) public readonly config: IJsFixConfig) { super(config.sessionContainer.resolve<ElasticBuffer>(DITokens.TransmitBuffer), config.definitions, config.description) this.encoder = config.sessionContainer.resolve<FixmlEncoder>(DITokens.MsgEncoder) } public encodeMessage (msgType: string, obj: ILooseObject): any { const adapter = this?.config?.description?.application?.http?.adapter if (adapter) { adapter.beginMessage(msgType) } const fe = this.encoder as FixmlEncoder const factory = this.config.factory obj.StandardHeader = factory?.header() fe.encode(obj, msgType) return obj.StandardHeader } }