UNPKG

@typescript/server-harness

Version:
34 lines (33 loc) 1.74 kB
/// <reference types="node" /> declare type EventListener = (obj: any) => void; declare type ErrorListener = (err: any) => void; declare type ExitListener = (code: number | null) => void; declare type CloseListener = (code: number | null, signal: NodeJS.Signals | null) => void; export interface Server { /** Returns the response (or event) with the matching `request_seq`. */ message(request: any): Promise<any>; /** * Sends an exit message to the server and forcibly kills it if it hasn't exited after `timeoutMs`. * Throws if the request fails (e.g. if the server has already exited). * Throws if the server doesn't exit before `timeoutMs` and it cannot be killed. * Returns true if the server exited before `timeoutMs` and false if it was killed. */ exitOrKill(timoutMs: number): Promise<boolean>; /** Kills the server, regardless of its current state. */ kill(): Promise<void>; /** Fires when an event is received from the server. */ on(event: "event", listener: EventListener): void; /** Fires when an internal error occurs in the harness (not for language service errors). */ on(event: "communicationError", listener: ErrorListener): void; /** Fires when the server exits. */ on(event: "exit", listener: ExitListener): void; /** Fires when the server closes (exits + closes IO streams). */ on(event: "close", listener: CloseListener): void; /** The PID of the subprocess. */ pid?: number; } /** * Forks a new server process. By default, the server will not have ATA or produce diagnostic events. */ export declare function launchServer(tsserverPath: string, args?: string[], execArgv?: string[], env?: NodeJS.ProcessEnv): Server; export {};