UNPKG

@glue42/bbg-market-data

Version:

A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.

38 lines (37 loc) 2.04 kB
import { RequestType } from "../../core/request-types"; import { NonSubscriptionRequestImpl } from "../../core/non-subscription-request"; import { getRequestConfig } from "../../request-configs"; import { parseISO, format } from "date-fns"; import { BLOOMBERG_DATE_TIME_FORMAT } from "../../constants"; import { createResponseDataHandler, createResponseErrorHandler } from "../../core/helpers"; import { MessageTypes } from "../../core/message-types"; const MESSAGE_TYPE = MessageTypes.IntradayTickResponse; const errorHandler = createResponseErrorHandler(MESSAGE_TYPE, function getError(message) { return message === null || message === void 0 ? void 0 : message.responseError; }, function test(message) { return (message === null || message === void 0 ? void 0 : message.responseError) != null; }); const dataHandler = createResponseDataHandler(MESSAGE_TYPE, function getData(message) { return message === null || message === void 0 ? void 0 : message.tickData; }, function test(message) { return (message === null || message === void 0 ? void 0 : message.tickData) != null; }); function convertToOperationArgs(args) { const startDateTime = format(parseISO(args.startDateTime), BLOOMBERG_DATE_TIME_FORMAT); const endDateTime = format(parseISO(args.endDateTime), BLOOMBERG_DATE_TIME_FORMAT); const requestArgs = Object.assign(Object.assign({}, args), { startDateTime, endDateTime }); const requestArgsAsArray = Object.entries(requestArgs).map(([key, value]) => ({ [key]: value })); return requestArgsAsArray; } export default (sessionManager) => (args) => { const operationArgs = convertToOperationArgs(args); const handlers = { partialResponseData: dataHandler, responseData: dataHandler, responseError: errorHandler, }; return new NonSubscriptionRequestImpl(sessionManager, getRequestConfig(RequestType.IntraDayTick), operationArgs, handlers).api; }; export * from "./request-args"; export * from "./response";