]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / npm-registry-client / lib / initialize.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js
new file mode 100644 (file)
index 0000000..3c12697
--- /dev/null
@@ -0,0 +1,81 @@
+var crypto = require('crypto')
+var HttpAgent = require('http').Agent
+var HttpsAgent = require('https').Agent
+
+var pkg = require('../package.json')
+
+module.exports = initialize
+
+function initialize (uri, method, accept, headers) {
+  if (!this.config.sessionToken) {
+    this.config.sessionToken = crypto.randomBytes(8).toString('hex')
+    this.log.verbose('request id', this.config.sessionToken)
+  }
+
+  var opts = {
+    url: uri,
+    method: method,
+    headers: headers,
+    localAddress: this.config.proxy.localAddress,
+    strictSSL: this.config.ssl.strict,
+    cert: this.config.ssl.certificate,
+    key: this.config.ssl.key,
+    ca: this.config.ssl.ca,
+    agent: getAgent.call(this, uri.protocol)
+  }
+
+  // allow explicit disabling of proxy in environment via CLI
+  //
+  // how false gets here is the CLI's problem (it's gross)
+  if (this.config.proxy.http === false) {
+    opts.proxy = null
+  } else {
+    // request will not pay attention to the NOPROXY environment variable if a
+    // config value named proxy is passed in, even if it's set to null.
+    var proxy
+    if (uri.protocol === 'https:') {
+      proxy = this.config.proxy.https
+    } else {
+      proxy = this.config.proxy.http
+    }
+    if (typeof proxy === 'string') opts.proxy = proxy
+  }
+
+  headers.version = this.version || pkg.version
+  headers.accept = accept
+
+  if (this.refer) headers.referer = this.refer
+
+  headers['npm-session'] = this.config.sessionToken
+  headers['user-agent'] = this.config.userAgent
+
+  return opts
+}
+
+function getAgent (protocol) {
+  if (protocol === 'https:') {
+    if (!this.httpsAgent) {
+      this.httpsAgent = new HttpsAgent({
+        keepAlive: true,
+        maxSockets: this.config.maxSockets,
+        localAddress: this.config.proxy.localAddress,
+        rejectUnauthorized: this.config.ssl.strict,
+        ca: this.config.ssl.ca,
+        cert: this.config.ssl.certificate,
+        key: this.config.ssl.key
+      })
+    }
+
+    return this.httpsAgent
+  } else {
+    if (!this.httpAgent) {
+      this.httpAgent = new HttpAgent({
+        keepAlive: true,
+        maxSockets: this.config.maxSockets,
+        localAddress: this.config.proxy.localAddress
+      })
+    }
+
+    return this.httpAgent
+  }
+}