This commit is contained in:
Bojan Kucera 2025-06-06 22:20:35 -04:00
parent 0937651f67
commit 117ff56d1e
5 changed files with 11 additions and 14 deletions

View file

@ -40,7 +40,7 @@ async function demonstrateProxyService() {
console.log('Working proxy found:', {
host: workingProxy.host,
port: workingProxy.port,
type: workingProxy.type
protocol: workingProxy.protocol
});
// 7. Test the proxy

View file

@ -1,7 +1,6 @@
import { createLogger } from '@stock-bot/logger';
import { createCache } from '@stock-bot/cache';
import createCache, { type CacheProvider } from '@stock-bot/cache';
import { HttpClient, ProxyConfig } from '@stock-bot/http-client';
import type { CacheProvider } from '@stock-bot/cache';
import type { Logger as PinoLogger } from 'pino';
export interface ProxySource {
@ -163,7 +162,7 @@ export class ProxyService {
this.parseHttpProxyList(response.data);
return proxies.map(proxy => ({
type: 'http', // Fixed type to match ProxyConfig interface
protocol: source.protocol,
host: proxy.host,
port: proxy.port,
username: proxy.username,
@ -193,7 +192,7 @@ export class ProxyService {
const [host, port] = trimmed.split(':');
if (host && port && this.isValidIP(host) && this.isValidPort(port)) {
proxies.push({
type: 'http',
protocol: 'http',
host: host.trim(),
port: parseInt(port.trim())
});

View file

@ -3,8 +3,6 @@ import type {
HttpClientConfig,
RequestConfig,
HttpResponse,
HttpMethod,
ProxyConfig,
} from './types.js';
import {
HttpError,

View file

@ -8,17 +8,17 @@ export class ProxyManager {
* Create appropriate proxy agent based on configuration
*/
static createAgent(proxy: ProxyConfig): HttpsProxyAgent<string> | SocksProxyAgent {
const { type, host, port, username, password } = proxy;
const { protocol, host, port, username, password } = proxy;
let proxyUrl: string;
if (username && password) {
proxyUrl = `${type}://${encodeURIComponent(username)}:${encodeURIComponent(password)}@${host}:${port}`;
proxyUrl = `${protocol}://${encodeURIComponent(username)}:${encodeURIComponent(password)}@${host}:${port}`;
} else {
proxyUrl = `${type}://${host}:${port}`;
proxyUrl = `${protocol}://${host}:${port}`;
}
switch (type) {
switch (protocol) {
case 'http':
case 'https':
return new HttpsProxyAgent(proxyUrl);
@ -26,7 +26,7 @@ export class ProxyManager {
case 'socks5':
return new SocksProxyAgent(proxyUrl);
default:
throw new Error(`Unsupported proxy type: ${type}`);
throw new Error(`Unsupported proxy protocol: ${protocol}`);
}
}
/**

View file

@ -3,7 +3,7 @@ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' |
// Proxy configuration
export interface ProxyConfig {
type: 'http' | 'https' | 'socks4' | 'socks5';
protocol: 'http' | 'https' | 'socks4' | 'socks5';
host: string;
port: number;
username?: string;
@ -120,7 +120,7 @@ export function validateProxyConfig(config: unknown): ProxyConfig {
}
return {
type: proxy.type as ProxyConfig['type'],
protocol: proxy.protocol as ProxyConfig['protocol'],
host: proxy.host.trim(),
port: proxy.port,
username: proxy.username as string | undefined,