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.

41 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const request_types_1 = require("../../core/request-types"); const non_subscription_request_1 = require("../../core/non-subscription-request"); const request_configs_1 = require("./../../request-configs"); const helpers_1 = require("../../core/helpers"); const message_types_1 = require("../../core/message-types"); const date_fns_1 = require("date-fns"); const constants_1 = require("./../../constants"); function convertToOperationArgs(args) { const startDate = date_fns_1.format(date_fns_1.parseISO(args.startDate), constants_1.BLOOMBERG_REQUEST_DATE_FORMAT); const endDate = date_fns_1.format(date_fns_1.parseISO(args.endDate), constants_1.BLOOMBERG_REQUEST_DATE_FORMAT); const requestArgs = Object.assign(Object.assign({}, args), { startDate: startDate, endDate: endDate }); const operationArgs = Object.entries(requestArgs).map(([key, value]) => ({ [key]: value })); return operationArgs; } const MESSAGE_TYPE = message_types_1.MessageTypes.HistoricalDataResponse; const errorHandler = helpers_1.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 = helpers_1.createResponseDataHandler(MESSAGE_TYPE, function getData(message) { const securityData = message === null || message === void 0 ? void 0 : message.securityData; return securityData == null ? [] : Array.isArray(securityData) ? securityData : [securityData]; }, function test(message) { return (message === null || message === void 0 ? void 0 : message.securityData) != null; }); exports.default = (sessionManager) => (args) => { const operationArgs = convertToOperationArgs(args); const handlers = { partialResponseData: dataHandler, responseData: dataHandler, responseError: errorHandler, }; return new non_subscription_request_1.NonSubscriptionRequestImpl(sessionManager, request_configs_1.getRequestConfig(request_types_1.RequestType.HistoricalData), operationArgs, handlers).api; }; tslib_1.__exportStar(require("./request-args"), exports); tslib_1.__exportStar(require("./response"), exports); //# sourceMappingURL=index.js.map