UNPKG

@gr2m/net-interceptor

Version:

Intercept and mock outgoing network TCP/TLS connections

61 lines (48 loc) 1.48 kB
import net from "node:net"; import tls from "node:net"; import { EventEmitter } from "node:events"; declare const interceptor: NetInterceptor; export default interceptor; export declare const kRemote: Symbol; declare class NetInterceptor extends EventEmitter { /** * Start intercepting net/tls socket connections. * No-op if already recording. */ start: () => this; /** * Stop intercepting net/tls socket connections. * No-op if not recording. */ stop: () => this; /** * Subscribe to the "connect" event, emitted each time a net/tls socket connets */ addListener(event: "connect", listener: ConnectEventListener): this; addListener(event: "connection", listener: ConnectionEventListener): this; /** * Unsubscribe from an event using the same listener function * that was used when subscribing. */ removeListener(event: NetInterceptorEvents, listener: () => void): this; /** * Remove all listeners from all events */ removeAllListeners(): this; /** * Remove all listeners from an events */ removeAllListeners(event: NetInterceptorEvents): this; } type NetInterceptorEvents = "connect" | "connection"; type NetConnectOptions = net.TcpNetConnectOpts; interface ConnectEventListener { ( socket: net.Socket | tls.Socket, options: NetConnectOptions, bypass: () => void ): void; } interface ConnectionEventListener { (socket: net.Socket | tls.Socket, options: NetConnectOptions): void; }