1.1.0 • Published 8 years ago
agent-options v1.1.0
As stated in the documentation for https.request:
The following additional
optionsfromtls.connect()are also accepted when using a customAgent:ca,cert,ciphers,clientCertEngine,key,passphrase,pfx,rejectUnauthorized,secureProtocol,servername.
This module allows to modify other options, as well as to disable them. For example, SNI can be disabled by setting servername to null (or undefined).
Install
$ npm i agent-optionsUsage
makeAgent(agentOptions)returnshttps.Agentcreated with givenagentOptionsand ensures that thoseagentOptionsare used fortls.connectas well (in a sense ofObject.assign).makeAgent(agentOptions, connectOptions)usesagentOptionsforhttps.Agent(as is) andconnectOptionsfortls.connect(again, withObject.assign).
Examples
Performing https.request without SNI:
const https = require('https')
const makeAgent = require('agent-options')
const options = {
host: 'example.com',
port: 443,
path: '/',
agent: makeAgent({ servername: null })
}
const req = https.request(options, res => {
res.on('data', data => {
// ...
})
res.on('end', () => {
// ...
})
})
req.on('error', err => {
// ...
})
req.end()Same using got:
const got = require('got')
const makeAgent = require('agent-options')
got('example.com', { agent: makeAgent({ servername: null }) }).then(res => {
// ...
}).catch(err => {
// ...
})Issues
- Support agents other than
https.Agent?