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
TypeScript
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;
};