fetch-with-proxy3
v1.0.2
Published
fetch-with-proxy3 is a utility function built on top of the Axios library, designed to make HTTP(S) requests with proxy support. When a request encounters issues like network errors or timeouts, it uses a specified proxy to attempt the operation. This fun
Downloads
4
Readme
fetch-with-proxy3 (axios-based)
fetch-with-proxy3 is a utility function built on top of the Axios library, designed to make HTTP(S) requests with automatic retry logic. When a request fails due to issues like network errors, timeouts, or specific status codes, it retries the operation a set number of times. It can be customized with options like retry count, delay between retries, backoff strategies, and error handling, leveraging Axios' capabilities while enhancing reliability in unstable network environments.
Options
function fetchWithProxy<T = any, D = any>(
url: string, // URL
options?: AxiosRequestConfig<D>, // Options (axios based)
proxies: Proxy[] = [], // Proxies: http, https, socks4, socks5
attempts: number = 3, // Number of attempts
delay: number = 1500, // Delay in milliseconds
timeout: number = 30 * 1000, // Timeout in milliseconds
): Promise<AxiosResponse<T> & { ok: boolean; error?: Error }>
GET example
import { fetchWithProxy } from 'fetch-with-proxy3';
const result = await fetchWithProxy('https://api.example.com/data', {
method: 'GET',
});
if (result.ok) {
console.log('GET Request Success:', result.data);
} else {
console.error('GET Request Failed:', result.error);
}
POST example
import { fetchWithProxy } from 'fetch-with-proxy3';
const result = await fetchWithProxy('https://api.example.com/data', {
method: 'POST',
data: { key: 'value' }, // Example payload
headers: { 'Content-Type': 'application/json' },
});
if (result.ok) {
console.log('POST Request Success:', result.data);
} else {
console.error('POST Request Failed:', result.error);
}
tsup
Bundle your TypeScript library with no config, powered by esbuild.
https://tsup.egoist.dev/
How to use this
- install dependencies
# pnpm
$ pnpm install
# yarn
$ yarn install
# npm
$ npm install
- Add your code to
src
- Add export statement to
src/index.ts
- Test build command to build
src
. Once the command works properly, you will seedist
folder.
# pnpm
$ pnpm run build
# yarn
$ yarn run build
# npm
$ npm run build
- Publish your package
$ npm publish
test package
https://www.npmjs.com/package/fetch-with-proxy3