aa
Some checks failed
test / Run tests (push) Failing after 14s
build / Build (push) Failing after 19s
Some checks failed
test / Run tests (push) Failing after 14s
build / Build (push) Failing after 19s
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
import LoggerCore from "@App/app/logger/core";
|
||||
import { Message, MessageConnect, MessageSend } from "./server";
|
||||
import { MessageConnect, MessageSend } from "./server";
|
||||
|
||||
export async function sendMessage(msg: MessageSend, action: string, data?: any): Promise<any> {
|
||||
const res = await msg.sendMessage({ action, data });
|
||||
@ -12,17 +12,19 @@ export async function sendMessage(msg: MessageSend, action: string, data?: any):
|
||||
}
|
||||
}
|
||||
|
||||
export function connect(msg: Message, action: string, data?: any): Promise<MessageConnect> {
|
||||
export function connect(msg: MessageSend, action: string, data?: any): Promise<MessageConnect> {
|
||||
return msg.connect({ action, data });
|
||||
}
|
||||
|
||||
export class Client {
|
||||
constructor(
|
||||
private msg: MessageSend,
|
||||
private prefix: string
|
||||
private prefix?: string
|
||||
) {
|
||||
if (!this.prefix.endsWith("/")) {
|
||||
if (this.prefix && !this.prefix.endsWith("/")) {
|
||||
this.prefix += "/";
|
||||
} else {
|
||||
this.prefix = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,16 +1,12 @@
|
||||
import { Message, MessageConnect, MessageSend } from "./server";
|
||||
|
||||
export class ExtensionMessageSend implements MessageSend {
|
||||
constructor(protected serverEnv: string) {}
|
||||
constructor() {}
|
||||
|
||||
connect(data: any): Promise<MessageConnect> {
|
||||
return new Promise((resolve) => {
|
||||
const con = chrome.runtime.connect();
|
||||
con.postMessage(
|
||||
Object.assign(data, {
|
||||
serverEnv: this.serverEnv,
|
||||
})
|
||||
);
|
||||
con.postMessage(data);
|
||||
resolve(new ExtensionMessageConnect(con));
|
||||
});
|
||||
}
|
||||
@ -18,14 +14,9 @@ export class ExtensionMessageSend implements MessageSend {
|
||||
// 发送消息 注意不进行回调的内存泄漏
|
||||
sendMessage(data: any): Promise<any> {
|
||||
return new Promise((resolve) => {
|
||||
chrome.runtime.sendMessage(
|
||||
Object.assign(data, {
|
||||
serverEnv: this.serverEnv,
|
||||
}),
|
||||
(resp) => {
|
||||
resolve(resp);
|
||||
}
|
||||
);
|
||||
chrome.runtime.sendMessage(data, (resp) => {
|
||||
resolve(resp);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -35,10 +26,6 @@ export class ExtensionMessage extends ExtensionMessageSend implements Message {
|
||||
chrome.runtime.onConnect.addListener((port) => {
|
||||
const handler = (msg: any) => {
|
||||
port.onMessage.removeListener(handler);
|
||||
if (msg.serverEnv !== this.serverEnv) {
|
||||
port.disconnect();
|
||||
return false;
|
||||
}
|
||||
callback(msg, new ExtensionMessageConnect(port));
|
||||
};
|
||||
port.onMessage.addListener(handler);
|
||||
@ -48,9 +35,6 @@ export class ExtensionMessage extends ExtensionMessageSend implements Message {
|
||||
// 注意chrome.runtime.onMessage.addListener的回调函数需要返回true才能处理异步请求
|
||||
onMessage(callback: (data: any, sendResponse: (data: any) => void) => void) {
|
||||
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
|
||||
if (msg.serverEnv !== this.serverEnv) {
|
||||
return false;
|
||||
}
|
||||
return callback(msg, sendResponse);
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user