Skip to content

A http and https agent for working with proxies that allow keep-alive connections

License

Notifications You must be signed in to change notification settings

axa-group/native-proxy-agent

Repository files navigation

Native Proxy Agent

CI

A native proxy agent that uses the native nodejs http.Agent and https.Agent to proxy the requests.

All agents allow http or https proxy but you have to select over the agent depending on your target url.

How to install

  npm install @axa/native-proxy-agent

Usage

const { createAgent } = require('@axa/native-proxy-agent');
const got = require('got');

got('http://requestUrl.com/service/1', {
  agent: createAgent('http://requestUrl.com/service/1')
});
  • You can also directly create an httpsAgent or an httpAgent
const { createHttpAgent } = require('@axa/native-proxy-agent');
const got = require('got');

got('http://requestUrl.com/service/1', {
  agent: {
    http: createHttpAgent()
  }
});
const { createHttpsAgent } = require('@axa/native-proxy-agent');
const got = require('got');

got('http://requestUrl.com/service/1', {
  agent: {
    https: createHttpsAgent()
  }
});
  • createForeverAgent will add to a singleton, agents with the same configuration to allow an easy reuse of the agents. Also this method will set the option keepAlive to true by default.
const { createForeverAgent } = require('@axa/native-proxy-agent');
const got = require('got');

got('http://requestUrl.com/service/1', {
  agent: {
    https: createForeverAgent('http://requestUrl.com/service/1')
  }
});

// Target with same protocol and agent options will share same agent
got('http://requestUrl.com/another-service', {
  agent: {
    http: createForeverAgent('http://requestUrl.com/another-service')
  }
});
  • If the protocol of the requests is always the same, you can create a target https or http Agent.
    • createHttpForeverAgent
    • createHttpsForeverAgent

Environment variables

@axa/native-proxy-agent will pick the proxy configuration from the environment if the options are not provided at the creation of the agent. It will also pick environment variables for making unproxied (no_proxy and NO_PROXY) requests.

The environment variables used for this purpose are:

  • Setting the proxy: http_proxy, https_proxy, HTTP_PROXY, and HTTPS_PROXY.
  • Proxy exemptions: no_proxy and NO_PROXY.

The preference of variable is the order in which they are written in this readme.

Contributing

You can read the guide of how to contribute at Contributing.

Code of Conduct

You can read the Code of Conduct at Code of Conduct.

Legal Notice

Copyright (c) AXA Group. All rights reserved. Licensed under the MIT License.

Third party dependencies licenses

Production

Development