UNPKG

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
"use strict"; 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==