UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

49 lines (48 loc) 1.59 kB
import type WebSocket from 'ws'; /** Function handler that should be triggered when the respective socket connects */ export type OnConnect = (c: Socket) => void; /** * A generic server interface that allows us to mock the server's behavior in tests. */ export interface Server { /** * Register a function to be called when a new socket connects. * This should be only called once per server. */ onConnect(handler: OnConnect): void; start(port: number): void; } export declare class WebSocketServerWrapper implements Server { private server; private connectHandler; onConnect(handler: OnConnect): void; start(port: number): void; } /** * The socket abstraction of *flowR*. * Essentially a subset of what the default `net.Socket` of `node` provides. */ export interface Socket { remoteAddress?: string; remotePort?: number; on(event: 'error', listener: (e: unknown) => void): void; on(event: 'close', listener: () => void): void; on(event: 'data', listener: (data: Buffer) => void): void; write(data: string): void; end(): void; } export declare class WebSocketWrapper implements Socket { private readonly socket; remoteAddress?: string; remotePort?: number; constructor(socket: WebSocket); write(data: string): void; end(): void; on(event: 'data' | 'close' | 'error', listener: (data: Buffer) => void): void; } export declare class NetServer implements Server { private readonly server; constructor(); onConnect(handler: OnConnect): void; start(port: number): void; }