mirror of
https://github.com/XFox111/TabsAsideExtension.git
synced 2026-04-22 07:58:01 +03:00
chore: messenger refactoring
This commit is contained in:
+24
-17
@@ -1,6 +1,6 @@
|
|||||||
import { trackError } from "@/features/analytics";
|
import { trackError } from "@/features/analytics";
|
||||||
import { GraphicsStorage } from "@/models/CollectionModels";
|
import { GraphicsStorage } from "@/models/CollectionModels";
|
||||||
import { defineExtensionMessaging, ExtensionMessenger } from "@webext-core/messaging";
|
import { defineExtensionMessaging, ExtensionMessagingConfig, ExtensionMessenger } from "@webext-core/messaging";
|
||||||
|
|
||||||
type ProtocolMap =
|
type ProtocolMap =
|
||||||
{
|
{
|
||||||
@@ -9,20 +9,27 @@ type ProtocolMap =
|
|||||||
refreshCollections(): void;
|
refreshCollections(): void;
|
||||||
};
|
};
|
||||||
|
|
||||||
const protocol: ExtensionMessenger<ProtocolMap> = defineExtensionMessaging<ProtocolMap>();
|
function defineMessaging(config?: ExtensionMessagingConfig): ExtensionMessenger<ProtocolMap>
|
||||||
|
|
||||||
export const onMessage = protocol.onMessage;
|
|
||||||
|
|
||||||
export const sendMessage: ExtensionMessenger<ProtocolMap>["sendMessage"] = async (...args) =>
|
|
||||||
{
|
{
|
||||||
try
|
const { onMessage, sendMessage, removeAllListeners } = defineExtensionMessaging<ProtocolMap>(config);
|
||||||
{
|
|
||||||
return await protocol.sendMessage(...args);
|
return {
|
||||||
}
|
onMessage,
|
||||||
catch (ex)
|
removeAllListeners,
|
||||||
{
|
sendMessage: async (type, data, args): Promise<any> =>
|
||||||
console.error(ex);
|
{
|
||||||
trackError("messaging_error", ex as Error);
|
try
|
||||||
return undefined!;
|
{
|
||||||
}
|
return await sendMessage(type, data, args);
|
||||||
};
|
}
|
||||||
|
catch (ex)
|
||||||
|
{
|
||||||
|
console.error(ex);
|
||||||
|
trackError("messaging_error", ex as Error);
|
||||||
|
return undefined!;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const { onMessage, sendMessage } = defineMessaging({ logger: console });
|
||||||
|
|||||||
Reference in New Issue
Block a user