UNPKG

@push.rocks/smartproxy

Version:

A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.

52 lines (51 loc) 1.43 kB
import * as plugins from '../plugins.js'; import { type INetworkProxyOptions } from './classes.np.types.js'; import { ConnectionPool } from './classes.np.connectionpool.js'; import { ProxyRouter } from '../classes.router.js'; /** * Interface for tracking metrics */ export interface IMetricsTracker { incrementRequestsServed(): void; incrementFailedRequests(): void; } /** * Handles HTTP request processing and proxying */ export declare class RequestHandler { private options; private connectionPool; private router; private defaultHeaders; private logger; private metricsTracker; constructor(options: INetworkProxyOptions, connectionPool: ConnectionPool, router: ProxyRouter); /** * Set the metrics tracker instance */ setMetricsTracker(tracker: IMetricsTracker): void; /** * Set default headers to be included in all responses */ setDefaultHeaders(headers: { [key: string]: string; }): void; /** * Get all default headers */ getDefaultHeaders(): { [key: string]: string; }; /** * Apply CORS headers to response if configured */ private applyCorsHeaders; /** * Apply default headers to response */ private applyDefaultHeaders; /** * Handle an HTTP request */ handleRequest(req: plugins.http.IncomingMessage, res: plugins.http.ServerResponse): Promise<void>; }