Replace eventMessageChannel with clearer implementation

This commit is contained in:
hensm
2022-04-27 16:17:33 +01:00
parent 234280f5ec
commit 5e2d9a2fbc
8 changed files with 132 additions and 110 deletions

View File

@@ -1,21 +1,25 @@
"use strict";
import { onMessageResponse, sendMessage } from "./eventMessageChannel";
import eventMessaging from "./eventMessaging";
import messaging, { Message } from "../messaging";
// Message port to background script
export const backgroundPort = messaging.connect({ name: "cast" });
const forwardToCast = (message: Message) => sendMessage(message);
const forwardToMain = (message: Message) => backgroundPort.postMessage(message);
const forwardToPage = (message: Message) => {
eventMessaging.extension.sendMessage(message);
};
const forwardToMain = (message: Message) => {
backgroundPort.postMessage(message);
};
// Add message listeners
backgroundPort.onMessage.addListener(forwardToCast);
const listener = onMessageResponse(forwardToMain);
backgroundPort.onMessage.addListener(forwardToPage);
eventMessaging.extension.addListener(forwardToMain);
// Remove listeners
backgroundPort.onDisconnect.addListener(() => {
backgroundPort.onMessage.removeListener(forwardToCast);
listener.disconnect();
backgroundPort.onMessage.removeListener(forwardToPage);
eventMessaging.extension.addListener(forwardToMain);
});