Skip to content

Commit c1dc1e4

Browse files
committed
🦄 refactor: 移除入参scriptCodeDAO
+ 调整scriptRes.code赋值
1 parent 39decc8 commit c1dc1e4

3 files changed

Lines changed: 20 additions & 18 deletions

File tree

src/app/service/content/utils.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { Message } from "@Packages/message/server";
66
import EventEmitter from "eventemitter3";
77

88
// 构建脚本运行代码
9-
export function compileScriptCode(scriptRes: ScriptRunResouce): string {
10-
const scriptCode = scriptRes.code;
9+
export function compileScriptCode(scriptRes: ScriptRunResouce, scriptCode?: string): string {
10+
scriptCode = scriptCode ?? scriptRes.code;
1111
let requireCode = "";
1212
if (Array.isArray(scriptRes.metadata.require)) {
1313
requireCode += scriptRes.metadata.require
@@ -49,11 +49,17 @@ export function compileScript(code: string): ScriptFunc {
4949
/**
5050
* 将脚本函数编译为注入脚本代码
5151
* @param script
52+
* @param scriptCode
5253
* @param [autoDeleteMountFunction=false] 是否自动删除挂载的函数
5354
*/
54-
export function compileInjectScript(script: ScriptRunResouce, autoDeleteMountFunction: boolean = false): string {
55+
export function compileInjectScript(
56+
script: ScriptRunResouce,
57+
scriptCode?: string,
58+
autoDeleteMountFunction: boolean = false
59+
): string {
60+
scriptCode = scriptCode ?? script.code;
5561
return `window['${script.flag}'] = function(context, GM_info){
56-
${autoDeleteMountFunction ? ` try{delete window['${script.flag}'];}catch(e){};` : ""}${script.code}}`;
62+
${autoDeleteMountFunction ? ` try{delete window['${script.flag}'];}catch(e){};` : ""}${scriptCode}}`;
5763
}
5864

5965
// 设置api依赖

src/app/service/service_worker/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ export default class ServiceWorkerManager {
3434
const scriptDAO = new ScriptDAO();
3535
scriptDAO.enableCache();
3636

37-
const scriptCodeDAO = new ScriptCodeDAO();
38-
3937
const systemConfig = new SystemConfig(this.mq);
4038

4139
const resource = new ResourceService(this.api.group("resource"), this.mq);
@@ -51,8 +49,7 @@ export default class ServiceWorkerManager {
5149
value,
5250
script,
5351
resource,
54-
scriptDAO,
55-
scriptCodeDAO
52+
scriptDAO
5653
);
5754
runtime.init();
5855
const popup = new PopupService(this.api.group("popup"), this.mq, runtime, scriptDAO);

src/app/service/service_worker/runtime.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ export class RuntimeService {
6767
private value: ValueService,
6868
private script: ScriptService,
6969
private resource: ResourceService,
70-
private scriptDAO: ScriptDAO,
71-
private scriptCodeDAO: ScriptCodeDAO
70+
private scriptDAO: ScriptDAO
7271
) {
7372
this.logger = LoggerCore.logger({ component: "runtime" });
7473
}
@@ -420,19 +419,19 @@ export class RuntimeService {
420419
let scriptRes = needUpdateRegisteredUserScripts.find((script) => (script.uuid = scriptRegisterInfo.id));
421420
if (scriptRes) {
422421
let originScriptCode = scriptRegisterInfo.js[0]["code"];
423-
if (scriptRes.code === "") {
424-
// 重新获取脚本代码,不知道什么情况code会被置空,所以这里重新获取
425-
scriptRes.code = (await this.scriptCodeDAO.get(scriptRes.uuid))!.code;
422+
let scriptResCode = scriptRes.code;
423+
if (scriptResCode === "") {
424+
scriptResCode = (await this.scriptDAO.scriptCodeDAO.get(scriptRes.uuid))!.code;
426425
}
427-
scriptRes.code = compileScriptCode(scriptRes);
428-
scriptRes.code = compileInjectScript(scriptRes, true);
429-
// 编译后的脚本和初始化时的脚本代码一致,则不更新
430-
if (originScriptCode === scriptRes.code) {
426+
let scriptCode = compileScriptCode(scriptRes, scriptResCode);
427+
let scriptInjectCode = compileInjectScript(scriptRes, scriptCode, true);
428+
// 若代码一致,则不更新
429+
if (originScriptCode === scriptInjectCode) {
431430
return;
432431
}
433432
scriptRegisterInfo.js = [
434433
{
435-
code: scriptRes.code,
434+
code: scriptInjectCode,
436435
},
437436
];
438437
return scriptRegisterInfo;

0 commit comments

Comments
 (0)