summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js')
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
new file mode 100644
index 0000000000..e6d58a3df9
--- /dev/null
+++ b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
@@ -0,0 +1,42 @@
+/**
+ * Https Agent base on custom http agent
+ */
+
+'use strict';
+
+const https = require('https');
+const HttpAgent = require('./agent');
+const OriginalHttpsAgent = https.Agent;
+
+class HttpsAgent extends HttpAgent {
+ constructor(options) {
+ super(options);
+
+ this.defaultPort = 443;
+ this.protocol = 'https:';
+ this.maxCachedSessions = this.options.maxCachedSessions;
+ if (this.maxCachedSessions === undefined) {
+ this.maxCachedSessions = 100;
+ }
+
+ this._sessionCache = {
+ map: {},
+ list: [],
+ };
+ }
+}
+
+[
+ 'createConnection',
+ 'getName',
+ '_getSession',
+ '_cacheSession',
+ // https://github.com/nodejs/node/pull/4982
+ '_evictSession',
+].forEach(function(method) {
+ if (typeof OriginalHttpsAgent.prototype[method] === 'function') {
+ HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method];
+ }
+});
+
+module.exports = HttpsAgent;