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)

74 lines (73 loc) 2.75 kB
import { ApiError } from '../../clients/errorHandler'; /** * HTTP client library based on request-promise */ export default class HttpClient { private _timeout; private _extendedTimeout; private _retries; private _minRetryDelay; private _maxRetryDelay; /** * @typedef {Object} RetryOptions retry options * @property {Number} [retries] the number of attempts to retry failed request, default 5 * @property {Number} [minDelayInSeconds] minimum delay in seconds before retrying, default 1 * @property {Number} [maxDelayInSeconds] maximum delay in seconds before retrying, default 30 */ /** * Constructs HttpClient class instance * @param {Number} [timeout] request timeout in seconds * @param {Number} [extendedTimeout] request timeout in seconds * @param {RetryOptions} [retryOpts] retry options */ constructor(timeout?: number, extendedTimeout?: number, retryOpts?: RetryOptions); /** * Performs a request. Response errors are returned as ApiError or subclasses. * @param {Object} options request options * @param {Boolean} isExtendedTimeout whether to run the request with an extended timeout * @returns {Object|String|any} request result */ request(options: any, isExtendedTimeout?: any): Promise<any>; /** * Performs a request with a failover. Response errors are returned as ApiError or subclasses. * @param {Object} options request options * @returns {Object|String|any} request result */ requestWithFailover(options: any, retryCounter?: number, endTime?: number): any; _makeRequest(options: any): any; _wait(pause: any): Promise<void>; _handleRetry(endTime: any, retryAfter: any): Promise<void>; _handleError(err: any, retryCounter: any, endTime: any): Promise<any>; _convertError(err: any): ApiError; } /** * HTTP client service mock for tests */ export declare class HttpClientMock extends HttpClient { _requestFn: any; /** * Constructs HTTP client mock * @param {Function(options:Object):Promise} requestFn mocked request function * @param {Number} timeout request timeout in seconds * @param {RetryOptions} retryOpts retry options */ constructor(requestFn: any, timeout?: any, extendedTimeout?: any, retryOpts?: any); _makeRequest(...args: any[]): any; } /** * retry options */ export declare type RetryOptions = { /** * the number of attempts to retry failed request, default 5 */ retries?: number; /** * minimum delay in seconds before retrying, default 1 */ minDelayInSeconds?: number; /** * maximum delay in seconds before retrying, default 30 */ maxDelayInSeconds?: number; };