metaapi.cloud-sdk
Version:
SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)
103 lines (102 loc) • 11.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _log4jsapi = /*#__PURE__*/ _interop_require_default(require("@log4js-node/log4js-api"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
let log4jsEnabled = false;
/**
* Manages loggers of the entire sdk
*/ let LoggerManager = class LoggerManager {
/**
* Enables using Log4js logger with extended log levels for debugging instead of
* console.* functions. Note that log4js configuration performed by the user.
*/ static useLog4js() {
log4jsEnabled = true;
}
/**
* Creates a new logger for specified category
* @param {String} category Logger category
* @return {Logger} Created logger
*/ static getLogger(category) {
if (log4jsEnabled) {
const logger = _log4jsapi.default.getLogger(category);
if (logger._log) {
const originalLog = logger._log.bind(logger);
logger._log = function(level, data) {
if (typeof data[0] === "function") {
data[0] = data[0]();
}
originalLog(level, data);
};
}
return logger;
} else {
return new NativeLogger();
}
}
};
/**
* Native logger that uses console.* functions
*/ let NativeLogger = class NativeLogger {
/**
* Supposed to log messages of trace level
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ trace(message, ...args) {
// this logger does not print trace messages
}
/**
* Supposed to log messages of debug level
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ debug(message, ...args) {
// this logger does not print debug messages
}
/**
* Prints a message with console.log
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ info(message, ...args) {
this._log("log", message, args);
}
/**
* Prints a message with console.warn
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ warn(message, ...args) {
this._log("warn", message, args);
}
/**
* Prints a message with console.error
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ error(message, ...args) {
this._log("error", message, args);
}
/**
* Prints a message with console.error
* @param {String|Function} message Message or message generator to log
* @param {*[]} args Additional args to message
*/ fatal(message, ...args) {
this._log("error", message, args);
}
_log(level, message, args) {
if (typeof message === "function") {
message = message();
}
console[level](`[${new Date().toISOString()}] ${message}`, ...args);
}
};
const _default = LoggerManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxhbm9uPiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBsb2c0anMgZnJvbSAnQGxvZzRqcy1ub2RlL2xvZzRqcy1hcGknO1xuXG5sZXQgbG9nNGpzRW5hYmxlZCA9IGZhbHNlO1xuXG4vKipcbiAqIE1hbmFnZXMgbG9nZ2VycyBvZiB0aGUgZW50aXJlIHNka1xuICovXG5jbGFzcyBMb2dnZXJNYW5hZ2VyIHtcblxuICAvKipcbiAgICogRW5hYmxlcyB1c2luZyBMb2c0anMgbG9nZ2VyIHdpdGggZXh0ZW5kZWQgbG9nIGxldmVscyBmb3IgZGVidWdnaW5nIGluc3RlYWQgb2ZcbiAgICogY29uc29sZS4qIGZ1bmN0aW9ucy4gTm90ZSB0aGF0IGxvZzRqcyBjb25maWd1cmF0aW9uIHBlcmZvcm1lZCBieSB0aGUgdXNlci5cbiAgICovXG4gIHN0YXRpYyB1c2VMb2c0anMoKSB7XG4gICAgbG9nNGpzRW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBsb2dnZXIgZm9yIHNwZWNpZmllZCBjYXRlZ29yeVxuICAgKiBAcGFyYW0ge1N0cmluZ30gY2F0ZWdvcnkgTG9nZ2VyIGNhdGVnb3J5XG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gQ3JlYXRlZCBsb2dnZXJcbiAgICovXG4gIHN0YXRpYyBnZXRMb2dnZXIoY2F0ZWdvcnkpOiBMb2dnZXIge1xuICAgIGlmIChsb2c0anNFbmFibGVkKSB7XG4gICAgICBjb25zdCBsb2dnZXIgPSBsb2c0anMuZ2V0TG9nZ2VyKGNhdGVnb3J5KTtcbiAgICAgIGlmIChsb2dnZXIuX2xvZykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbExvZyA9IGxvZ2dlci5fbG9nLmJpbmQobG9nZ2VyKTtcbiAgICAgICAgbG9nZ2VyLl9sb2cgPSBmdW5jdGlvbiAobGV2ZWwsIGRhdGEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGFbMF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGRhdGFbMF0gPSBkYXRhWzBdKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9yaWdpbmFsTG9nKGxldmVsLCBkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsb2dnZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgTmF0aXZlTG9nZ2VyKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTG9nZ2VyIGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gIFxuICAvKipcbiAgICogU3VwcG9zZWQgdG8gbG9nIG1lc3NhZ2VzIG9mIHRyYWNlIGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBtZXNzYWdlIE1lc3NhZ2Ugb3IgbWVzc2FnZSBnZW5lcmF0b3IgdG8gbG9nXG4gICAqIEBwYXJhbSB7KltdfSBhcmdzIEFkZGl0aW9uYWwgYXJncyB0byBtZXNzYWdlXG4gICAqL1xuICB0cmFjZShtZXNzYWdlOiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSwgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTdXBwb3NlZCB0byBsb2cgbWVzc2FnZXMgb2YgZGVidWcgbGV2ZWxcbiAgICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IG1lc3NhZ2UgTWVzc2FnZSBvciBtZXNzYWdlIGdlbmVyYXRvciB0byBsb2dcbiAgICogQHBhcmFtIHsqW119IGFyZ3MgQWRkaXRpb25hbCBhcmdzIHRvIG1lc3NhZ2VcbiAgICovXG4gIGRlYnVnKG1lc3NhZ2U6IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFByaW50cyBhIG1lc3NhZ2Ugd2l0aCBjb25zb2xlLmxvZ1xuICAgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gbWVzc2FnZSBNZXNzYWdlIG9yIG1lc3NhZ2UgZ2VuZXJhdG9yIHRvIGxvZ1xuICAgKiBAcGFyYW0geypbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3MgdG8gbWVzc2FnZVxuICAgKi9cbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSwgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQcmludHMgYSBtZXNzYWdlIHdpdGggY29uc29sZS53YXJuXG4gICAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBtZXNzYWdlIE1lc3NhZ2Ugb3IgbWVzc2FnZSBnZW5lcmF0b3IgdG8gbG9nXG4gICAqIEBwYXJhbSB7KltdfSBhcmdzIEFkZGl0aW9uYWwgYXJncyB0byBtZXNzYWdlXG4gICAqL1xuICB3YXJuKG1lc3NhZ2U6IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFByaW50cyBhIG1lc3NhZ2Ugd2l0aCBjb25zb2xlLmVycm9yXG4gICAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBtZXNzYWdlIE1lc3NhZ2Ugb3IgbWVzc2FnZSBnZW5lcmF0b3IgdG8gbG9nXG4gICAqIEBwYXJhbSB7KltdfSBhcmdzIEFkZGl0aW9uYWwgYXJncyB0byBtZXNzYWdlXG4gICAqL1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSwgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQcmludHMgYSBtZXNzYWdlIHdpdGggY29uc29sZS5lcnJvclxuICAgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gbWVzc2FnZSBNZXNzYWdlIG9yIG1lc3NhZ2UgZ2VuZXJhdG9yIHRvIGxvZ1xuICAgKiBAcGFyYW0geypbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3MgdG8gbWVzc2FnZVxuICAgKi9cbiAgZmF0YWwobWVzc2FnZTogc3RyaW5nIHwgKCgpID0+IHN0cmluZyksIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbn1cblxuLyoqXG4gKiBOYXRpdmUgbG9nZ2VyIHRoYXQgdXNlcyBjb25zb2xlLiogZnVuY3Rpb25zXG4gKi9cbmNsYXNzIE5hdGl2ZUxvZ2dlciB7XG5cbiAgLyoqXG4gICAqIFN1cHBvc2VkIHRvIGxvZyBtZXNzYWdlcyBvZiB0cmFjZSBsZXZlbFxuICAgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gbWVzc2FnZSBNZXNzYWdlIG9yIG1lc3NhZ2UgZ2VuZXJhdG9yIHRvIGxvZ1xuICAgKiBAcGFyYW0geypbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3MgdG8gbWVzc2FnZVxuICAgKi9cbiAgdHJhY2UobWVzc2FnZSwgLi4uYXJncykge1xuICAgIC8vIHRoaXMgbG9nZ2VyIGRvZXMgbm90IHByaW50IHRyYWNlIG1lc3NhZ2VzXG4gIH1cblxuICAvKipcbiAgICogU3VwcG9zZWQgdG8gbG9nIG1lc3NhZ2VzIG9mIGRlYnVnIGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBtZXNzYWdlIE1lc3NhZ2Ugb3IgbWVzc2FnZSBnZW5lcmF0b3IgdG8gbG9nXG4gICAqIEBwYXJhbSB7KltdfSBhcmdzIEFkZGl0aW9uYWwgYXJncyB0byBtZXNzYWdlXG4gICAqL1xuICBkZWJ1ZyhtZXNzYWdlLCAuLi5hcmdzKSB7XG4gICAgLy8gdGhpcyBsb2dnZXIgZG9lcyBub3QgcHJpbnQgZGVidWcgbWVzc2FnZXNcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmludHMgYSBtZXNzYWdlIHdpdGggY29uc29sZS5sb2dcbiAgICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IG1lc3NhZ2UgTWVzc2FnZSBvciBtZXNzYWdlIGdlbmVyYXRvciB0byBsb2dcbiAgICogQHBhcmFtIHsqW119IGFyZ3MgQWRkaXRpb25hbCBhcmdzIHRvIG1lc3NhZ2VcbiAgICovXG4gIGluZm8obWVzc2FnZSwgLi4uYXJncykge1xuICAgIHRoaXMuX2xvZygnbG9nJywgbWVzc2FnZSwgYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIGEgbWVzc2FnZSB3aXRoIGNvbnNvbGUud2FyblxuICAgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gbWVzc2FnZSBNZXNzYWdlIG9yIG1lc3NhZ2UgZ2VuZXJhdG9yIHRvIGxvZ1xuICAgKiBAcGFyYW0geypbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3MgdG8gbWVzc2FnZVxuICAgKi9cbiAgd2FybihtZXNzYWdlLCAuLi5hcmdzKSB7XG4gICAgdGhpcy5fbG9nKCd3YXJuJywgbWVzc2FnZSwgYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIGEgbWVzc2FnZSB3aXRoIGNvbnNvbGUuZXJyb3JcbiAgICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IG1lc3NhZ2UgTWVzc2FnZSBvciBtZXNzYWdlIGdlbmVyYXRvciB0byBsb2dcbiAgICogQHBhcmFtIHsqW119IGFyZ3MgQWRkaXRpb25hbCBhcmdzIHRvIG1lc3NhZ2VcbiAgICovXG4gIGVycm9yKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLl9sb2coJ2Vycm9yJywgbWVzc2FnZSwgYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnRzIGEgbWVzc2FnZSB3aXRoIGNvbnNvbGUuZXJyb3JcbiAgICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IG1lc3NhZ2UgTWVzc2FnZSBvciBtZXNzYWdlIGdlbmVyYXRvciB0byBsb2dcbiAgICogQHBhcmFtIHsqW119IGFyZ3MgQWRkaXRpb25hbCBhcmdzIHRvIG1lc3NhZ2VcbiAgICovXG4gIGZhdGFsKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLl9sb2coJ2Vycm9yJywgbWVzc2FnZSwgYXJncyk7XG4gIH1cblxuICBfbG9nKGxldmVsLCBtZXNzYWdlLCBhcmdzKSB7XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZSgpO1xuICAgIH1cbiAgICBjb25zb2xlW2xldmVsXShgWyR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfV0gJHttZXNzYWdlfWAsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ2dlck1hbmFnZXI7Il0sIm5hbWVzIjpbImxvZzRqc0VuYWJsZWQiLCJMb2dnZXJNYW5hZ2VyIiwidXNlTG9nNGpzIiwiZ2V0TG9nZ2VyIiwiY2F0ZWdvcnkiLCJsb2dnZXIiLCJsb2c0anMiLCJfbG9nIiwib3JpZ2luYWxMb2ciLCJiaW5kIiwibGV2ZWwiLCJkYXRhIiwiTmF0aXZlTG9nZ2VyIiwidHJhY2UiLCJtZXNzYWdlIiwiYXJncyIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsImZhdGFsIiwiY29uc29sZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBOEpBOzs7ZUFBQTs7O2tFQTVKbUI7Ozs7OztBQUVuQixJQUFJQSxnQkFBZ0I7QUFFcEI7O0NBRUMsR0FDRCxJQUFBLEFBQU1DLGdCQUFOLE1BQU1BO0lBRUo7OztHQUdDLEdBQ0QsT0FBT0MsWUFBWTtRQUNqQkYsZ0JBQWdCO0lBQ2xCO0lBRUE7Ozs7R0FJQyxHQUNELE9BQU9HLFVBQVVDLFFBQVEsRUFBVTtRQUNqQyxJQUFJSixlQUFlO1lBQ2pCLE1BQU1LLFNBQVNDLGtCQUFNLENBQUNILFNBQVMsQ0FBQ0M7WUFDaEMsSUFBSUMsT0FBT0UsSUFBSSxFQUFFO2dCQUNmLE1BQU1DLGNBQWNILE9BQU9FLElBQUksQ0FBQ0UsSUFBSSxDQUFDSjtnQkFDckNBLE9BQU9FLElBQUksR0FBRyxTQUFVRyxLQUFLLEVBQUVDLElBQUk7b0JBQ2pDLElBQUksT0FBT0EsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZO3dCQUNqQ0EsSUFBSSxDQUFDLEVBQUUsR0FBR0EsSUFBSSxDQUFDLEVBQUU7b0JBQ25CO29CQUNBSCxZQUFZRSxPQUFPQztnQkFDckI7WUFDRjtZQUNBLE9BQU9OO1FBQ1QsT0FBTztZQUNMLE9BQU8sSUFBSU87UUFDYjtJQUNGO0FBQ0Y7QUFrREE7O0NBRUMsR0FDRCxJQUFBLEFBQU1BLGVBQU4sTUFBTUE7SUFFSjs7OztHQUlDLEdBQ0RDLE1BQU1DLE9BQU8sRUFBRSxHQUFHQyxJQUFJLEVBQUU7SUFDdEIsNENBQTRDO0lBQzlDO0lBRUE7Ozs7R0FJQyxHQUNEQyxNQUFNRixPQUFPLEVBQUUsR0FBR0MsSUFBSSxFQUFFO0lBQ3RCLDRDQUE0QztJQUM5QztJQUVBOzs7O0dBSUMsR0FDREUsS0FBS0gsT0FBTyxFQUFFLEdBQUdDLElBQUksRUFBRTtRQUNyQixJQUFJLENBQUNSLElBQUksQ0FBQyxPQUFPTyxTQUFTQztJQUM1QjtJQUVBOzs7O0dBSUMsR0FDREcsS0FBS0osT0FBTyxFQUFFLEdBQUdDLElBQUksRUFBRTtRQUNyQixJQUFJLENBQUNSLElBQUksQ0FBQyxRQUFRTyxTQUFTQztJQUM3QjtJQUVBOzs7O0dBSUMsR0FDREksTUFBTUwsT0FBTyxFQUFFLEdBQUdDLElBQUksRUFBRTtRQUN0QixJQUFJLENBQUNSLElBQUksQ0FBQyxTQUFTTyxTQUFTQztJQUM5QjtJQUVBOzs7O0dBSUMsR0FDREssTUFBTU4sT0FBTyxFQUFFLEdBQUdDLElBQUksRUFBRTtRQUN0QixJQUFJLENBQUNSLElBQUksQ0FBQyxTQUFTTyxTQUFTQztJQUM5QjtJQUVBUixLQUFLRyxLQUFLLEVBQUVJLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3pCLElBQUksT0FBT0QsWUFBWSxZQUFZO1lBQ2pDQSxVQUFVQTtRQUNaO1FBQ0FPLE9BQU8sQ0FBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUlZLE9BQU9DLFdBQVcsR0FBRyxFQUFFLEVBQUVULFFBQVEsQ0FBQyxLQUFLQztJQUNoRTtBQUNGO01BRUEsV0FBZWQifQ==