UNPKG

shrimpy-node

Version:
64 lines (52 loc) 2.83 kB
import { IDtoConverter } from "../interfaces"; import { IHistoricalOrderBookDto, IHistoricalOrderBookItemDto } from "../dtos"; import { IHistoricalOrderBook, IHistoricalOrderBookItem } from "../models"; import { DecimalDtoConverter } from "./decimal-dto-converter"; import { DateDtoConverter } from "./date-dto-converter"; export class HistoricalOrderBookItemDtoConverter implements IDtoConverter<IHistoricalOrderBookItemDto, IHistoricalOrderBookItem> { private _decimalDtoConverter = new DecimalDtoConverter(); public convertFromDto(dto: IHistoricalOrderBookItemDto): IHistoricalOrderBookItem { return { price: this._decimalDtoConverter.convertFromDto(dto.price), size: this._decimalDtoConverter.convertFromDto(dto.size) }; } public convertToDto(model: IHistoricalOrderBookItem): IHistoricalOrderBookItemDto { return { price: this._decimalDtoConverter.convertToDto(model.price), size: this._decimalDtoConverter.convertToDto(model.size) }; } } export class HistoricalOrderBooksDtoConverter implements IDtoConverter<IHistoricalOrderBookDto[], IHistoricalOrderBook[]> { private _dateDtoConverter = new DateDtoConverter(); private _historicalOrderBookItemDtoConverter = new HistoricalOrderBookItemDtoConverter(); public convertFromDto(dto: IHistoricalOrderBookDto[]): IHistoricalOrderBook[] { return dto.map((historicalDepthDto) => { const historicalDepth: IHistoricalOrderBook = { time: this._dateDtoConverter.convertFromDto(historicalDepthDto.time), bids: historicalDepthDto.bids.map((depthItemDto) => { return this._historicalOrderBookItemDtoConverter.convertFromDto(depthItemDto); }), asks: historicalDepthDto.asks.map((depthItemDto) => { return this._historicalOrderBookItemDtoConverter.convertFromDto(depthItemDto); }) }; return historicalDepth; }); } public convertToDto(model: IHistoricalOrderBook[]): IHistoricalOrderBookDto[] { return model.map((historicalDepth) => { const historicalDepthDto: IHistoricalOrderBookDto = { time: this._dateDtoConverter.convertToDto(historicalDepth.time), bids: historicalDepth.bids.map((depthItem) => { return this._historicalOrderBookItemDtoConverter.convertToDto(depthItem); }), asks: historicalDepth.asks.map((depthItem) => { return this._historicalOrderBookItemDtoConverter.convertToDto(depthItem); }) }; return historicalDepthDto; }); } }