import { IProcessState } from ".." import { IPCManager, ProcessListener } from ".." export class LocalManager extends IPCManager { public channels: { [id: string]: ProcessListener } = {} constructor() { super({ processId: "" + process.pid, }) } public async requestProcess(id: string | number, method: string, data: T): Promise { const listener = this.requestHandlers[method] if (!listener) { throw new Error(`Process ${id} cannot execute ${method} - method not found.`) } return listener(data) } public subscribe(channel: string, listener: ProcessListener): void { this.channels[channel] = listener } public unsubscribe(channel: string): void { delete this.channels[channel] } public publish(channel: string, data: any): void { const listener = this.channels[channel] return listener && listener(data) } public close() { return } }