code: function HttpsProxyAgent (opts) {
    if (!(this instanceof HttpsProxyAgent)) return new HttpsProxyAgent(opts);
    if ('string' == typeof opts) opts = url.parse(opts);
    if (!opts) throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');
    debug('creating new HttpsProxyAgent instance: %o', opts);
    Agent.call(this, connect);
  
    var proxy = extend({}, opts);
  
    // if `true`, then connect to the proxy server over TLS. defaults to `false`.
    this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
  
    // prefer `hostname` over `host`, and set the `port` if needed
    proxy.host = proxy.hostname || proxy.host;
    proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
  
    if (proxy.host && proxy.path) {
      // if both a `host` and `path` are specified then it's most likely the
      // result of a `url.parse()` call... we need to remove the `path` portion so
      // that `net.connect()` doesn't attempt to open that as a unix socket file.
      delete proxy.path;
      delete proxy.pathname;
    }
  
    this.proxy = proxy;
  }
docs: The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to the
  specified "HTTP(s) proxy server" in order to proxy HTTPS requests.
  
  @api public