fast-proxy-balancer
Version:
Smart and flexible proxy balancer for Node.js
36 lines • 1.25 kB
JavaScript
import axios from 'axios';
import { log } from './utils/logger.js';
import { createAgent } from './utils/createAgent.js';
export async function testProxy(proxy, testUrl, testTimeout) {
log(`Testing proxy: ${proxy.url}`);
const start = Date.now();
try {
const agent = await createAgent(proxy.url);
const response = await axios.get(testUrl, {
timeout: testTimeout,
httpAgent: agent,
httpsAgent: agent
});
if (response.status !== 200) {
throw new Error(`Proxy failed with status: ${response.status}`);
}
proxy.latency = Date.now() - start;
proxy.failures = 0;
log(`✅ Proxy ${proxy.url} passed with latency: ${proxy.latency}ms`);
}
catch (err) {
proxy.failures += 1;
proxy.latency = Infinity;
log(`❌ Proxy ${proxy.url} failed. Errors: ${proxy.failures}`, 'error');
if (err.response) {
log(`Response error: ${err.response.status}`, 'error');
}
else if (err.request) {
log('No response received from proxy', 'error');
}
else {
log(`Error: ${err.message}`, 'error');
}
}
}
//# sourceMappingURL=ProxyTester.js.map