@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
TypeScript
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>;
}