kittenipc/lib/ts/dist/lib.d.ts

60 lines
1.7 KiB
TypeScript

import * as net from 'node:net';
declare enum MsgType {
Call = 1,
Response = 2
}
type Vals = any[];
interface CallMessage {
type: MsgType.Call;
id: number;
method: string;
params: Vals;
}
interface ResponseMessage {
type: MsgType.Response;
id: number;
result?: Vals;
error?: string;
}
type Message = CallMessage | ResponseMessage;
interface CallResult {
result: Vals;
error: Error | null;
}
declare abstract class IPCCommon {
protected localApis: Record<string, any>;
protected socketPath: string;
protected conn: net.Socket | null;
protected nextId: number;
protected pendingCalls: Record<number, (result: CallResult) => void>;
protected stopRequested: boolean;
protected processingCalls: number;
protected onError?: (err: Error) => void;
protected onClose?: () => void;
protected constructor(localApis: object[], socketPath: string);
protected readConn(): void;
protected processMsg(msg: Message): void;
protected sendMsg(msg: Message): void;
protected handleCall(msg: CallMessage): void;
protected handleResponse(msg: ResponseMessage): void;
stop(): void;
call(method: string, ...params: Vals): Promise<Vals>;
protected raiseErr(err: Error): void;
}
export declare class ParentIPC extends IPCCommon {
private readonly cmdPath;
private readonly cmdArgs;
private cmd;
private readonly listener;
constructor(cmdPath: string, cmdArgs: string[], ...localApis: object[]);
start(): Promise<void>;
private acceptConn;
wait(): Promise<void>;
}
export declare class ChildIPC extends IPCCommon {
constructor(...localApis: object[]);
start(): Promise<void>;
wait(): Promise<void>;
}
export {};
//# sourceMappingURL=lib.d.ts.map