code: function proxy(requestUrl) {
    var options, header;
  
    if (!exports.proxy || !exports.proxy.host) { return requestUrl; }
  
    options = {
      host: exports.proxy.host,
      path: requestUrl,
      headers: {
        Host: url.parse(requestUrl).host
      }
    };
  
    if (exports.proxy.port) {
      options.port = exports.proxy.port;
    }
  
    if (exports.proxy.user) {
      options.headers['Proxy-Authorization'] = 'Basic ' + new Buffer(exports.proxy.user + ':' +
                                                                     (exports.proxy.pass || exports.proxy.password ||
                                                                      '')).toString('base64');
    }
  
    if (exports.proxy.headers) {
      for (header in exports.proxy.headers) {
        if (exports.proxy.headers.hasOwnProperty(header)) {
          options.headers[header] = exports.proxy.headers[header];
        }
      }
    }
  
    return options;
  }
docs: If <code>proxy</code> and <code>proxy.host</code> module properties are defined, wraps <code>requestUrl</code>
  in an <code>options</code> object configured for Proxy-Authorization, to be used instead in calls to
  {@link http://nodejs.org/api/http.html#http_http_request_options_callback http.request(options, [callback])}. The
  <code>proxy</code> module property can also contain <code>port</code>, <code>user</code> and <code>pass</code>
  or <code>password</code> properties as well as a <code>headers</code> object with additional request headers.
  
  @param {string} requestUrl
  @returns {*} an <code>options</code> {object} or <code>requestUrl</code> if <code>proxy</code> or
  <code>proxy.host</code> module properties are not defined