diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2020-01-16 07:59:03 -0500 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2020-01-16 07:59:03 -0500 |
commit | c919514f854db67be96ec0f0283bdce635d53571 (patch) | |
tree | 4f10ee00dc2fa66fe5ec9ff84e8750d2cf815fd7 /src/server/session/utilities/ipc.ts | |
parent | 2bc808135edfc0df1f80c8c52b1015daddf0aecc (diff) | |
parent | 380215f0b934eba265a6b97ab2edc502fd71818a (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/session/utilities/ipc.ts')
-rw-r--r-- | src/server/session/utilities/ipc.ts | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/server/session/utilities/ipc.ts b/src/server/session/utilities/ipc.ts deleted file mode 100644 index b20f3d337..000000000 --- a/src/server/session/utilities/ipc.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { isMaster } from "cluster"; -import { Utils } from "../../../Utils"; - -export namespace IPC { - - export const suffix = isMaster ? Utils.GenerateGuid() : process.env.ipc_suffix; - const ipc_id = `ipc_id_${suffix}`; - const response_expected = `response_expected_${suffix}`; - const is_response = `is_response_${suffix}`; - - export async function dispatchMessage(target: NodeJS.EventEmitter & { send?: Function }, message: any, expectResponse = false): Promise<Error | undefined> { - if (!target.send) { - return new Error("Cannot dispatch when send is undefined."); - } - message[response_expected] = expectResponse; - if (expectResponse) { - return new Promise(resolve => { - const messageId = Utils.GenerateGuid(); - message[ipc_id] = messageId; - const responseHandler: (args: any) => void = response => { - const { error } = response; - if (response[is_response] && response[ipc_id] === messageId) { - target.removeListener("message", responseHandler); - resolve(error); - } - }; - target.addListener("message", responseHandler); - target.send!(message); - }); - } else { - target.send(message); - } - } - - export function addMessagesHandler(target: NodeJS.EventEmitter & { send?: Function }, handler: (message: any) => void | Promise<void>): void { - target.addListener("message", async incoming => { - let error: Error | undefined; - try { - await handler(incoming); - } catch (e) { - error = e; - } - if (incoming[response_expected] && target.send) { - const response: any = { error }; - response[ipc_id] = incoming[ipc_id]; - response[is_response] = true; - target.send(response); - } - }); - } - -}
\ No newline at end of file |