Re-enable communicating from main to cluster frames

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen committed 2023-03-21 09:28:22 +02:00
1 parent 2a4fc4f20f
commit 42bd808e43
11 files changed
+211 -54

No files matched your search

@@ -6,8 +6,10 @@ export interface MessageChannel<Message> {
_messageSignature?: Message;
}
export type ExtraData = { processId: number; frameId: number };
export type MessageChannelHandler<Channel> = Channel extends MessageChannel<infer Message>
? (message: Message) => void
? (message: Message, data: ExtraData) => void
: never;
export interface MessageChannelListener<Channel> {
@@ -162,6 +162,10 @@ const someRequestChannelWithoutListeners: SomeRequestChannel = {
it("the response gets handled in di-1", () => {
expect(someHandler1MockInDi1).toHaveBeenCalledWith(
"some-response-to: some-message",
{
frameId: 42,
processId: 42,
},
);
});
@@ -188,6 +192,10 @@ const someRequestChannelWithoutListeners: SomeRequestChannel = {
it("the response gets handled in di-1", () => {
expect(someHandler1MockInDi1).toHaveBeenCalledWith(
"some-response-to: some-message",
{
frameId: 42,
processId: 42,
},
);
});
});
@@ -224,9 +232,15 @@ const someRequestChannelWithoutListeners: SomeRequestChannel = {
});
it("listeners in other than sending DIs handle the message", () => {
expect(someHandler1MockInDi2).toHaveBeenCalledWith("some-message");
expect(someHandler1MockInDi2).toHaveBeenCalledWith("some-message", {
frameId: 42,
processId: 42,
});
expect(someHandler2MockInDi2).toHaveBeenCalledWith("some-message");
expect(someHandler2MockInDi2).toHaveBeenCalledWith("some-message", {
frameId: 42,
processId: 42,
});
});
});
@@ -245,9 +259,15 @@ const someRequestChannelWithoutListeners: SomeRequestChannel = {
});
it("listeners still handle the message", () => {
expect(someHandler1MockInDi2).toHaveBeenCalledWith("some-message");
expect(someHandler1MockInDi2).toHaveBeenCalledWith("some-message", {
frameId: 42,
processId: 42,
});
expect(someHandler2MockInDi2).toHaveBeenCalledWith("some-message");
expect(someHandler2MockInDi2).toHaveBeenCalledWith("some-message", {
frameId: 42,
processId: 42,
});
});
});
});
@@ -54,12 +54,12 @@ const overrideMessaging = ({
const resolvableHandlePromise = asyncFn();
resolvableHandlePromise().then(() => {
handlersForChannel.forEach((handler) => handler(message));
handlersForChannel.forEach((handler) => handler(message, { frameId: 42, processId: 42 }));
});
messagePropagationBuffer.add(resolvableHandlePromise);
} else {
handlersForChannel.forEach((handler) => handler(message));
handlersForChannel.forEach((handler) => handler(message, { frameId: 42, processId: 42 }));
}
});
});
@@ -85,7 +85,7 @@ const overrideRequesting = ({
}: {
di: DiContainer;
requestListenersByDi: Map<DiContainer, Map<string, Set<MessageChannelHandler<Channel>>>>;
requestListenersByDi: Map<DiContainer, Map<string, Set<RequestChannelHandler<Channel>>>>;
}) => {
const requestHandlersByChannel = new Map<string, Set<RequestChannelHandler<Channel>>>();