From 120fa84b3e8c794dd882d3613067c5b18ee7ba04 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Sat, 11 Jan 2020 11:23:11 -0500 Subject: typed messages and handlers --- src/server/session/utilities/ipc.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/server/session/utilities') diff --git a/src/server/session/utilities/ipc.ts b/src/server/session/utilities/ipc.ts index fd8bf6075..7ad00596d 100644 --- a/src/server/session/utilities/ipc.ts +++ b/src/server/session/utilities/ipc.ts @@ -6,13 +6,12 @@ export type Router = (message: Message) => void | Promise; export const suffix = isMaster ? Utils.GenerateGuid() : process.env.ipc_suffix; -export interface Message { +export interface Message { name: string; - args?: any; + args: T; } -type InternalMessage = Message & { metadata: any }; - -export type MessageHandler = (message: T) => any | Promise; +type InternalMessage = Message & { metadata: any }; +export type MessageHandler = Message> = (message: T) => any | Promise; export class PromisifiedIPCManager { private readonly target: IPCTarget; @@ -32,10 +31,10 @@ export class PromisifiedIPCManager { const messageId = Utils.GenerateGuid(); const metadata: any = {}; metadata[this.ipc_id] = messageId; - const responseHandler: MessageHandler = ({ args, metadata }) => { + const responseHandler: MessageHandler = ({ metadata, args }) => { if (metadata[this.is_response] && metadata[this.ipc_id] === messageId) { this.target.removeListener("message", responseHandler); - resolve(args.error as Error | undefined); + resolve(args?.error as Error | undefined); } }; this.target.addListener("message", responseHandler); -- cgit v1.2.3-70-g09d2