| /** | |
|  * 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;
 |