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.
npm install @axa/native-proxy-agent
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 optionkeepAlive
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
@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.
You can read the guide of how to contribute at Contributing.
You can read the Code of Conduct at Code of Conduct.
Copyright (c) AXA Group. All rights reserved. Licensed under the MIT License.
- hyperid@3.0.1 - MIT
- node-object-hash@2.3.10 - MIT
- @commitlint/config-conventional@17.0.2 - MIT
- @types/jest@28.1.3 - MIT
- @types/node@18.0.0 - MIT
- @typescript-eslint/eslint-plugin@5.29.0 - MIT
- @typescript-eslint/parser@5.29.0 - BSD-2-Clause
- commitizen@4.2.4 - MIT
- commitlint@17.0.2 - MIT
- cz-conventional-changelog@3.3.0 - MIT
- eslint@8.18.0 - MIT
- eslint-config-airbnb-base@15.0.0 - MIT
- eslint-config-airbnb-typescript@17.0.0 - MIT
- eslint-config-prettier@8.5.0 - MIT
- eslint-import-resolver-typescript@2.7.1 - ISC
- eslint-plugin-import@2.26.0 - MIT
- eslint-plugin-jest@26.5.3 - MIT
- eslint-plugin-json@3.1.0 - MIT
- eslint-plugin-prettier@4.0.0 - MIT
- got@11.8.5 - MIT
- husky@8.0.1 - MIT
- jest@28.1.1 - MIT
- nock@13.2.7 - MIT
- prettier@2.7.1 - MIT
- rimraf@3.0.2 - ISC
- standard-version@9.5.0 - ISC
- ts-jest@28.0.5 - MIT
- typescript@4.7.x - Apache-2.0