注入脚本和inject/content通信
Some checks failed
build / Build (push) Failing after 6s
test / Run tests (push) Failing after 2s

This commit is contained in:
2025-03-31 18:06:00 +08:00
parent 48f1b1f33b
commit 315f5f148c
17 changed files with 395 additions and 167 deletions

26
src/inject.ts Normal file
View File

@@ -0,0 +1,26 @@
import LoggerCore from "./app/logger/core";
import MessageWriter from "./app/logger/message_writer";
import { CustomEventMessage } from "@Packages/message/custom_event_message";
import { Server } from "@Packages/message/server";
import { InjectRuntime } from "./runtime/content/inject";
import { ScriptRunResouce } from "./app/repo/scripts";
// 通过flag与content建立通讯,这个ScriptFlag是后端注入时候生成的
const flag = ScriptFlag;
const msg = new CustomEventMessage(flag, false);
// 加载logger组件
const logger = new LoggerCore({
writer: new MessageWriter(msg),
labels: { env: "inject", href: window.location.href },
});
const server = new Server("inject", msg);
server.on("pageLoad", (data: ScriptRunResouce[]) => {
logger.logger().debug("inject start");
console.log("inject", data);
const runtime = new InjectRuntime(msg, data);
runtime.start();
});