feat: reduce the impact of the enhanced mode

This commit is contained in:
GyDi 2022-03-19 16:02:47 +08:00
parent b8b0c8fa63
commit 7fe94076c7
No known key found for this signature in database
GPG Key ID: 1C95E0D3467B3084

View File

@ -101,6 +101,8 @@ class Enhance {
const payload = event.payload as CmdType.EnhancedPayload;
let pdata = payload.current || {};
let hasScript = false;
for (const each of payload.chain) {
const { uid, type = "" } = each.item;
@ -109,6 +111,7 @@ class Enhance {
if (type === "script") {
// support async main function
pdata = await toScript(each.script!, { ...pdata });
hasScript = true;
}
// process merge
@ -132,6 +135,29 @@ class Enhance {
}
}
// If script is never used
// filter other fields
if (!hasScript) {
const validKeys = [
"proxies",
"proxy-providers",
"proxy-groups",
"rule-providers",
"rules",
];
// to lowercase
const newData: any = {};
Object.keys(pdata).forEach((key) => {
const newKey = key.toLowerCase();
if (validKeys.includes(newKey)) {
newData[newKey] = (pdata as any)[key];
}
});
pdata = newData;
}
const result = { data: pdata, status: "ok" };
emit(payload.callback, JSON.stringify(result)).catch(console.error);
});