@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.
23 lines (22 loc) • 1.13 kB
JavaScript
import ConsoleLogger from "./console";
export default function (apiId, config) {
if (!(config === null || config === void 0 ? void 0 : config.debug)) {
return undefined;
}
const logger = (config === null || config === void 0 ? void 0 : config.logger) ? config.logger : new ConsoleLogger("bbg-market-data", { logLevel: config === null || config === void 0 ? void 0 : config.logLevel });
const messagePrefix = `_${apiId}_`;
const logWithMessagePrefix = (logFn) => (message) => logFn(`[${messagePrefix}] ${message}`);
return {
trace: logWithMessagePrefix(logger.trace.bind(logger)),
debug: logWithMessagePrefix(logger.debug.bind(logger)),
info: logWithMessagePrefix(logger.info.bind(logger)),
log: logWithMessagePrefix(logger.log.bind(logger)),
warn: logWithMessagePrefix(logger.warn.bind(logger)),
error: (message) => {
if (message instanceof Error) {
message = message.message + "\n" + message.stack;
}
logWithMessagePrefix(logger.error.bind(logger))(message);
},
};
}