UNPKG

meo-forkcy-proxy

Version:
91 lines (60 loc) โ€ข 2.23 kB
# ๐Ÿ”Œ meo-forkcy-proxy A simple and flexible proxy management library for Node.js, supporting various proxy selection strategies and compatible with `axios`, `got`, or any HTTP client that supports custom agents. ## ๐Ÿ“ฆ Installation ```bash npm install meo-forkcy-proxy ``` > Note: Requires `https-proxy-agent`, `http-proxy-agent`, and `socks-proxy-agent` as peer dependencies. ## ๐Ÿš€ Features - Support for HTTP, HTTPS, and SOCKS5 proxies. - Select proxies using different strategies: - `static` - `round` - `random` - `shuffle` - `batch` - Easy integration with HTTP clients like `axios`. ## ๐Ÿ› ๏ธ Usage ### Example ```js const { ProxyAgent, ProxySelector } = require("meo-forkcy-proxy"); const accounts = ["acc1", "acc2"]; const PROXIES = [ "http://user:pass@proxy1.com:8080", "socks5://user:pass@proxy2.com:1080", ]; const mode = "round"; for (let i = 0; i < accounts.length; i++) { const selector = new ProxySelector(PROXIES, mode, i); const proxy = selector.getProxy(i); const agent = new ProxyAgent(proxy); // Example with axios const axios = require("axios"); const res = await axios.get("https://api.ipify.org?format=json", { httpAgent: agent.agent, httpsAgent: agent.agent, }); console.log(`${accounts[i]} => ${res.data.ip}`); } ``` ## ๐Ÿง  Proxy Modes | Mode | Description | | --------- | -------------------------------------------- | | `static` | One-to-one mapping based on index | | `round` | Round-robin cycling through proxies | | `random` | Randomly choose a proxy for each task | | `shuffle` | Use a pre-shuffled version of the proxy list | | `batch` | Shifted round-robin with a `batchOffset` | ## ๐Ÿ“˜ API ### `new ProxyAgent(proxyUrl, options?)` Creates an agent based on the proxy type (HTTP/HTTPS/SOCKS). - `proxyUrl`: Full proxy URL string - `options`: (optional) Extra options for the agent ### `new ProxySelector(proxies, mode, batchOffset?)` Returns proxy strings based on the chosen selection mode. ## ๐Ÿงช Test ```bash node examples/test.js ``` ## ๐Ÿ“„ License MIT