@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.
33 lines (32 loc) • 1.78 kB
JavaScript
import { RequestType } from "../../core/request-types";
import { NonSubscriptionRequestImpl } from "../../core/non-subscription-request";
import { getRequestConfig } from "../../request-configs";
import { createResponseDataHandler, createResponseErrorHandler } from "../../core/helpers";
import { MessageTypes } from "../../core/message-types";
const MESSAGE_TYPE = MessageTypes.SnapshotResponse;
const errorHandler = createResponseErrorHandler(MESSAGE_TYPE, function getError(message) {
return message === null || message === void 0 ? void 0 : message.responseCode;
}, function test(message) {
const responseCode = message === null || message === void 0 ? void 0 : message.responseCode;
const hasError = typeof (responseCode === null || responseCode === void 0 ? void 0 : responseCode.resultCode) == "number" && responseCode.resultCode > 0;
return hasError;
});
const dataHandler = createResponseDataHandler(MESSAGE_TYPE, function getData(messageDetails) {
return messageDetails === null || messageDetails === void 0 ? void 0 : messageDetails.snapshot;
}, function test(message) {
return (message === null || message === void 0 ? void 0 : message.snapshot) != null;
});
function convertToOperationArgs(args) {
return Object.entries(args).map(([key, value]) => ({ [key]: value }));
}
export default (sessionManager) => (args) => {
const operationArgs = convertToOperationArgs(args);
const handlers = {
partialResponseData: dataHandler,
responseData: dataHandler,
responseError: errorHandler,
};
return new NonSubscriptionRequestImpl(sessionManager, getRequestConfig(RequestType.Snapshot), operationArgs, handlers).api;
};
export * from "./request-args";
export * from "./response";