@axa/native-proxy-agent v1.0.0
Native Proxy Agent
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-agentUsage
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()
}
});createForeverAgentwill add to a singleton, agents with the same configuration to allow an easy reuse of the agents. Also this method will set the optionkeepAliveto 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.createHttpForeverAgentcreateHttpsForeverAgent
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 / Apache 2.0) License.
Third party dependencies licenses
Production
- hyperid@3.0.1 - MIT
- node-object-hash@2.3.10 - MIT
Development
- @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
3 years ago