@push.rocks/smartproxy
Version:
A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.
44 lines • 2.87 kB
JavaScript
import * as plugins from '../../plugins.js';
/**
* Create a basic route context from connection information
*/
export function createBaseRouteContext(options) {
return {
...options,
timestamp: Date.now(),
};
}
/**
* Convert IHttpRouteContext to IRouteContext
* This is used to ensure type compatibility when passing HTTP-specific context
* to methods that require the base IRouteContext type
*/
export function toBaseContext(httpContext) {
// Create a new object with only the properties from IRouteContext
const baseContext = {
port: httpContext.port,
domain: httpContext.domain,
clientIp: httpContext.clientIp,
serverIp: httpContext.serverIp,
vpn: httpContext.vpn,
path: httpContext.path,
query: httpContext.query,
headers: httpContext.headers,
isTls: httpContext.isTls,
tlsVersion: httpContext.tlsVersion,
routeName: httpContext.routeName,
routeId: httpContext.routeId,
timestamp: httpContext.timestamp,
connectionId: httpContext.connectionId
};
// Only copy targetHost if it's a string
if (httpContext.targetHost) {
baseContext.targetHost = httpContext.targetHost;
}
// Copy targetPort if it exists
if (httpContext.targetPort) {
baseContext.targetPort = httpContext.targetPort;
}
return baseContext;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2NvcmUvbW9kZWxzL3JvdXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQWtFNUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FRdEM7SUFDQyxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7S0FDdEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxXQUE4QjtJQUMxRCxrRUFBa0U7SUFDbEUsTUFBTSxXQUFXLEdBQWtCO1FBQ2pDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDMUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO1FBQzlCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtRQUM5QixHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7UUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ3RCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztRQUN4QixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDNUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1FBQ3hCLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtRQUNsQyxTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7UUFDaEMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLFNBQVMsRUFBRSxXQUFXLENBQUMsU0FBUztRQUNoQyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7S0FDdkMsQ0FBQztJQUVGLHdDQUF3QztJQUN4QyxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQixXQUFXLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQixXQUFXLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMifQ==