Specifying an HTTPS proxy for the API client #36
Description
I originally opened #33 to enable users to specify an HTTPS proxy that should be used by the API client, but the PR was closed down in #33 (comment):
I'm probably going to implement this in a different way, since
got
is an implementation detail (and worse: likely to be removed). Can you open an issue instead?
I personally don't care about any of the other options offered by got
while using the Cloudflare API and don't think any other user would.
@terinjokes I'd be happy to open another PR that implements proxy support, like you would want it, since I'm interested in moving this forward quickly. ⚡ 😄
I think allowing users to pass an HTTPS agent offers the greatest flexibility to users, since some might need to tunnel through proprietary proxy protocols. The agent
option is understood universally by all underlying HTTP libs, like got
or request
.
Usage example
Using caw
import Cloudflare from 'cloudflare':
import caw from 'caw';
const cf = new Cloudflare({
email: 'you@example.com',
key: '<your API key here>',
agent: caw({ protocol: 'https' }) // Cloudflare API is HTTPS only
});
Using tunnel-agent
directly
import Cloudflare from 'cloudflare':
import TunnelAgent from 'tunnel-agent';
const cf = new Cloudflare({
email: 'you@example.com',
key: '<your API key here>',
agent: TunnelAgent.httpsOverHttp({ port: 80, host: 'proxy.example.com' })
});