MCPcopy Create free account
hub / github.com/EsperoTech/yaade / sendMessageToExtension

Function sendMessageToExtension

client/src/utils/extension.ts:8–36  ·  view source on GitHub ↗
(
  messageId: number,
  message: ExtensionRequest,
)

Source from the content-addressed store, hash-verified

6};
7
8function sendMessageToExtension(
9 messageId: number,
10 message: ExtensionRequest,
11): Promise<any> {
12 return new Promise((resolve, reject) => {
13 const msg = { ...message, metaData: { messageId: createMessageId(messageId) } };
14
15 function handleMessage(event: any) {
16 if (event?.data?.type === `${msg.type}-result` && event?.data?.err) {
17 reject(new Error(event.data.err));
18 } else if (
19 event.data &&
20 event.data.type === `${msg.type}-result` &&
21 event.data.result?.metaData?.messageId === msg.metaData?.messageId
22 ) {
23 window.removeEventListener('message', handleMessage);
24 resolve(event.data.result);
25 }
26 }
27
28 window.addEventListener('message', handleMessage);
29
30 setTimeout(() => {
31 window.removeEventListener('message', handleMessage);
32 reject(new Error('Timeout wating for response from'));
33 }, 5000);
34 window.postMessage(msg, '*');
35 });
36}
37
38export { sendMessageToExtension };

Callers 3

extensionConnectFunction · 0.90
extensionDisconnectFunction · 0.90
extensionWriteFunction · 0.90

Calls 2

createMessageIdFunction · 0.85
setTimeoutFunction · 0.50

Tested by

no test coverage detected