@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.35 kB
JavaScript
;
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 date_fns_1 = require("date-fns");
const constants_1 = require("../../constants");
const helpers_1 = require("../../core/helpers");
const message_types_1 = require("../../core/message-types");
const MESSAGE_TYPE = message_types_1.MessageTypes.IntradayBarResponse;
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) {
return message === null || message === void 0 ? void 0 : message.barData;
}, function test(message) {
return (message === null || message === void 0 ? void 0 : message.barData) != null;
});
function convertToOperationArgs(args) {
const startDateTime = date_fns_1.format(date_fns_1.parseISO(args.startDateTime), constants_1.BLOOMBERG_DATE_TIME_FORMAT);
const endDateTime = date_fns_1.format(date_fns_1.parseISO(args.endDateTime), constants_1.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;
}
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.IntraDayBar), operationArgs, handlers).api;
};
tslib_1.__exportStar(require("./request-args"), exports);
tslib_1.__exportStar(require("./response"), exports);
//# sourceMappingURL=index.js.map