/// /// /// import type { DebugProtocolServer } from './DebugProtocolServer'; import type { Socket } from 'net'; import type { ProtocolRequest, ProtocolResponse } from '../events/ProtocolEvent'; export interface ProtocolServerPlugin { onServerStart?: Handler; onClientConnected?: Handler; provideRequest?: Handler; provideResponse?: Handler; beforeSendResponse?: Handler; afterSendResponse?: Handler; } export interface OnServerStartEvent { server: DebugProtocolServer; } export interface OnClientConnectedEvent { server: DebugProtocolServer; client: Socket; } export interface ProvideRequestEvent { server: DebugProtocolServer; buffer: Buffer; /** * The plugin should provide this property */ request?: ProtocolRequest; } export interface ProvideResponseEvent { server: DebugProtocolServer; request: ProtocolRequest; /** * The plugin should provide this property */ response?: ProtocolResponse; } export interface BeforeSendResponseEvent { server: DebugProtocolServer; response: ProtocolResponse; } export type AfterSendResponseEvent = BeforeSendResponseEvent; export type Handler = (event: T) => R;