From 23b8efcdf5a43ebd5d2c9489ccadea32bb2dbb3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E4=B9=8B?= Date: Sun, 26 Jan 2025 15:57:42 +0800 Subject: [PATCH] fix msg --- packages/message/client.ts | 10 ++++++++-- src/app/service/offscreen/index.ts | 8 +++++++- src/app/service/offscreen/script.ts | 18 ++++++++++-------- src/runtime/utils.ts | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/packages/message/client.ts b/packages/message/client.ts index 9c8207e..70582c6 100644 --- a/packages/message/client.ts +++ b/packages/message/client.ts @@ -1,7 +1,13 @@ import { Message, MessageConnect } from "./server"; -export function sendMessage(msg: Message, action: string, data?: any): Promise { - return msg.sendMessage({ action, data }); +export async function sendMessage(msg: Message, action: string, data?: any): Promise { + const res = await msg.sendMessage({ action, data }); + if (res.code) { + console.error(res); + return Promise.reject(res.message); + } else { + return Promise.resolve(res.data); + } } export function connect(msg: Message, action: string, data?: any): Promise { diff --git a/src/app/service/offscreen/index.ts b/src/app/service/offscreen/index.ts index 746f951..a23a89e 100644 --- a/src/app/service/offscreen/index.ts +++ b/src/app/service/offscreen/index.ts @@ -43,7 +43,13 @@ export class OffscreenManager { this.windowApi.on("logger", this.logger.bind(this)); this.windowApi.on("preparationSandbox", this.preparationSandbox.bind(this)); this.windowApi.on("sendMessageToServiceWorker", this.sendMessageToServiceWorker.bind(this)); - const script = new ScriptService(group.group("script"), this.mq, this.windowMessage, this.broker); + const script = new ScriptService( + group.group("script"), + this.mq, + this.extensionMessage, + this.windowMessage, + this.broker + ); script.init(); // 转发gm api请求 forwardMessage("serviceWorker/runtime/gmApi", this.windowApi, this.extensionMessage); diff --git a/src/app/service/offscreen/script.ts b/src/app/service/offscreen/script.ts index 6c53493..335c449 100644 --- a/src/app/service/offscreen/script.ts +++ b/src/app/service/offscreen/script.ts @@ -1,7 +1,7 @@ import LoggerCore from "@App/app/logger/core"; import Logger from "@App/app/logger/logger"; import { Broker, MessageQueue } from "@Packages/message/message_queue"; -import { Group } from "@Packages/message/server"; +import { Group, Message } from "@Packages/message/server"; import { WindowMessage } from "@Packages/message/window_message"; import { ResourceClient, @@ -16,13 +16,14 @@ import { disableScript, enableScript } from "../sandbox/client"; export class ScriptService { logger: Logger; - scriptClient: ScriptClient = new ScriptClient(); - resourceClient: ResourceClient = new ResourceClient(); - valueClient: ValueClient = new ValueClient(); + scriptClient: ScriptClient = new ScriptClient(this.extensionMessage); + resourceClient: ResourceClient = new ResourceClient(this.extensionMessage); + valueClient: ValueClient = new ValueClient(this.extensionMessage); constructor( private group: Group, private mq: MessageQueue, + private extensionMessage: Message, private windowMessage: WindowMessage, private broker: Broker ) { @@ -31,20 +32,21 @@ export class ScriptService { async init() { subscribeScriptEnable(this.broker, async (data) => { - const info = await this.scriptClient.info(data.uuid); - if (info.type === SCRIPT_TYPE_NORMAL) { + const script = await this.scriptClient.info(data.uuid); + if (script.type === SCRIPT_TYPE_NORMAL) { return; } if (data.enable) { // 构造脚本运行资源,发送给沙盒运行 - enableScript(this.windowMessage, await this.scriptClient.getScriptRunResource(info)); + enableScript(this.windowMessage, await this.scriptClient.getScriptRunResource(script)); } else { // 发送给沙盒停止 - disableScript(this.windowMessage, info.uuid); + disableScript(this.windowMessage, script.uuid); } }); subscribeScriptInstall(this.broker, async (data) => { // 判断是开启还是关闭 + console.log("1dd23", data); if (data.script.status === SCRIPT_STATUS_ENABLE) { // 构造脚本运行资源,发送给沙盒运行 enableScript(this.windowMessage, await this.scriptClient.getScriptRunResource(data.script)); diff --git a/src/runtime/utils.ts b/src/runtime/utils.ts index 0c6c7a4..5892650 100644 --- a/src/runtime/utils.ts +++ b/src/runtime/utils.ts @@ -1,7 +1,7 @@ import { Script } from "@App/app/repo/scripts"; export function storageKey(script: Script): string { - if (script.metadata.storagename) { + if (script.metadata && script.metadata.storagename) { return script.metadata.storagename[0]; } return script.uuid;