whole_func_string: function Commander(client, options) {
  		if (!(this instanceof Commander)) {
  			return new Commander(client, options);
  		}
  		
  		EventEmitter2.call(this);
  		this.setMaxListeners(0);
  		
  		options = options || {};
  		
  		options.retryStrategy = options.retryStrategy || defaultRetry;
  		
  		this._client = client;
  		this._options = options;
  	}
func_code_string: function Commander(client, options) {
  		if (!(this instanceof Commander)) {
  			return new Commander(client, options);
  		}
  		
  		EventEmitter2.call(this);
  		this.setMaxListeners(0);
  		
  		options = options || {};
  		
  		options.retryStrategy = options.retryStrategy || defaultRetry;
  		
  		this._client = client;
  		this._options = options;
  	}
func_documentation_string: A Commander is a layer over a JSON-RPC 2.0 Client which controls automatic retries of method calls.
  @constructor
  @param {JSONRPC} client - The underlying JSON-RPC client to use. Should expose an API equivalent to the one found in the JSONRPC module in this package.
  @param {Object} [options] - Tunables that control the behaviour of this automatic layer.
  @param {function} [options.retryStrategy] - A function that should accept no arguments and return a function which, when called with arguments (next:function, error:Error), will call that "next" function some time in the future, or reject with the passed error if retry is denied.