Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/axa-group/native-proxy-agent
A http and https agent for working with proxies that allow keep-alive connections
https://github.com/axa-group/native-proxy-agent
agent http https keep-alive nodejs proxy typescript
Last synced: 6 days ago
JSON representation
A http and https agent for working with proxies that allow keep-alive connections
- Host: GitHub
- URL: https://github.com/axa-group/native-proxy-agent
- Owner: axa-group
- License: other
- Created: 2021-09-20T09:09:31.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-27T20:53:55.000Z (about 2 months ago)
- Last Synced: 2024-10-13T17:15:07.652Z (about 1 month ago)
- Topics: agent, http, https, keep-alive, nodejs, proxy, typescript
- Language: TypeScript
- Homepage:
- Size: 2.01 MB
- Stars: 7
- Watchers: 7
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.TXT
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Native Proxy Agent
[![CI](https://github.com/axa-group/native-proxy-agent/actions/workflows/main.yml/badge.svg)](https://github.com/axa-group/native-proxy-agent/actions/workflows/main.yml)
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
```console
npm install @axa/native-proxy-agent
```## Usage
```js
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
```js
const { createHttpAgent } = require('@axa/native-proxy-agent');
const got = require('got');got('http://requestUrl.com/service/1', {
agent: {
http: createHttpAgent()
}
});
``````js
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.
```js
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](./CONTRIBUTING.md).
## Code of Conduct
You can read the Code of Conduct at [Code of Conduct](./CODE_OF_CONDUCT.md).
# Legal Notice
Copyright (c) AXA Group. All rights reserved.
Licensed under the MIT License.## Third party dependencies licenses
### Production
- [[email protected]](https://github.com/mcollina/hyperid) - MIT
- [[email protected]](https://github.com/SkeLLLa/node-object-hash) - MIT### Development
- [@commitlint/[email protected]](https://github.com/conventional-changelog/commitlint) - MIT
- [@types/[email protected]](https://github.com/DefinitelyTyped/DefinitelyTyped) - MIT
- [@types/[email protected]](https://github.com/DefinitelyTyped/DefinitelyTyped) - MIT
- [@typescript-eslint/[email protected]](https://github.com/typescript-eslint/typescript-eslint) - MIT
- [@typescript-eslint/[email protected]](https://github.com/typescript-eslint/typescript-eslint) - BSD-2-Clause
- [[email protected]](https://github.com/commitizen/cz-cli) - MIT
- [[email protected]](https://github.com/conventional-changelog/commitlint) - MIT
- [[email protected]](https://github.com/commitizen/cz-conventional-changelog) - MIT
- [[email protected]](https://github.com/eslint/eslint) - MIT
- [[email protected]](https://github.com/airbnb/javascript) - MIT
- [[email protected]](https://github.com/iamturns/eslint-config-airbnb-typescript) - MIT
- [[email protected]](https://github.com/prettier/eslint-config-prettier) - MIT
- [[email protected]](https://github.com/alexgorbatchev/eslint-import-resolver-typescript) - ISC
- [[email protected]](https://github.com/import-js/eslint-plugin-import) - MIT
- [[email protected]](https://github.com/jest-community/eslint-plugin-jest) - MIT
- [[email protected]](https://github.com/azeemba/eslint-plugin-json) - MIT
- [[email protected]](https://github.com/prettier/eslint-plugin-prettier) - MIT
- [[email protected]](https://github.com/sindresorhus/got) - MIT
- [[email protected]](https://github.com/typicode/husky) - MIT
- [[email protected]](https://github.com/facebook/jest) - MIT
- [[email protected]](https://github.com/nock/nock) - MIT
- [[email protected]](https://github.com/prettier/prettier) - MIT
- [[email protected]](https://github.com/isaacs/rimraf) - ISC
- [[email protected]](https://github.com/conventional-changelog/standard-version) - ISC
- [[email protected]](https://github.com/kulshekhar/ts-jest) - MIT
- [[email protected]](https://github.com/Microsoft/TypeScript) - Apache-2.0