mirror of https://github.com/nodejs/node.git
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
var crypto = require("crypto")
|
|
|
|
var pkg = require("../package.json")
|
|
|
|
module.exports = initialize
|
|
|
|
function initialize (uri, method, accept, headers) {
|
|
if (!this.sessionToken) {
|
|
this.sessionToken = crypto.randomBytes(8).toString("hex")
|
|
this.log.verbose("request id", this.sessionToken)
|
|
}
|
|
|
|
var strict = this.conf.get("strict-ssl")
|
|
if (strict === undefined) strict = true
|
|
|
|
var p = this.conf.get("proxy")
|
|
var sp = this.conf.get("https-proxy") || p
|
|
|
|
var opts = {
|
|
url : uri,
|
|
method : method,
|
|
headers : headers,
|
|
proxy : uri.protocol === "https:" ? sp : p,
|
|
localAddress : this.conf.get("local-address"),
|
|
strictSSL : strict,
|
|
cert : this.conf.get("cert"),
|
|
key : this.conf.get("key"),
|
|
ca : this.conf.get("ca")
|
|
}
|
|
|
|
headers.version = this.version || pkg.version
|
|
headers.accept = accept
|
|
|
|
if (this.refer) headers.referer = this.refer
|
|
|
|
headers["npm-session"] = this.sessionToken
|
|
headers["user-agent"] = this.conf.get("user-agent") ||
|
|
"node/" + process.version
|
|
|
|
return opts
|
|
}
|