diff --git a/src/app/service/service_worker/client.ts b/src/app/service/service_worker/client.ts index e09d812c1..9fd158e39 100644 --- a/src/app/service/service_worker/client.ts +++ b/src/app/service/service_worker/client.ts @@ -143,18 +143,15 @@ export class ScriptClient extends Client { }) // this.do 只会resolve 不会reject )) as PromiseFulfilledResult<{ success: boolean; msg: string }>[]; - const stat = results.reduce( - (obj, result, index) => { - if (result.value.success) { - obj.success++; - } else { - obj.fail++; - obj.msg.push(`#${index + 1}: ${result.value.msg}`); - } - return obj; - }, - { success: 0, fail: 0, msg: [] as string[] } - ); + const stat = { success: 0, fail: 0, msg: [] as string[] }; + results.forEach(({ value }, index) => { + if (value.success) { + stat.success++; + } else { + stat.fail++; + stat.msg.push(`#${index + 1}: ${value.msg}`); + } + }); return stat; } diff --git a/src/app/service/service_worker/runtime.ts b/src/app/service/service_worker/runtime.ts index 280f67b4d..6a8bffdcd 100644 --- a/src/app/service/service_worker/runtime.ts +++ b/src/app/service/service_worker/runtime.ts @@ -409,29 +409,30 @@ export class RuntimeService { // 匹配当前页面的脚本 const matchScriptUuid = await this.getPageScriptUuidByUrl(chromeSender.url!); - const enableScript = matchScriptUuid.reduce((arr, uuid) => { + const enableScript = [] as ScriptLoadInfo[]; + + for (const uuid of matchScriptUuid) { const scriptRes = Object.assign({}, this.scriptMatchCache?.get(uuid)); // 判断脚本是否开启 if (scriptRes.status === SCRIPT_STATUS_DISABLE) { - return arr; + continue; } // 判断注入页面类型 if (scriptRes.metadata["run-in"]) { // 判断插件运行环境 const contextType = chrome.extension.inIncognitoContext ? "incognito-tabs" : "normal-tabs"; if (!scriptRes.metadata["run-in"].includes(contextType)) { - return arr; + continue; } } // 如果是iframe,判断是否允许在iframe里运行 if (chromeSender.frameId) { if (scriptRes.metadata.noframes) { - return arr; + continue; } } - arr.push(scriptRes as ScriptLoadInfo); - return arr; - }, [] as ScriptLoadInfo[]); + enableScript.push(scriptRes as ScriptLoadInfo); + } await Promise.all([ // 加载value diff --git a/src/locales/locales.ts b/src/locales/locales.ts index d85b4e4a9..1fd4fd003 100644 --- a/src/locales/locales.ts +++ b/src/locales/locales.ts @@ -91,17 +91,14 @@ export async function matchLanguage() { } } // 根据前缀去匹配 - const prefixMap = i18n.languages.reduce( - (acc, lng) => { - const prefix = lng.split("-")[0]; - if (!acc[prefix]) { - acc[prefix] = []; - } - acc[prefix].push(lng); - return acc; - }, - {} as Record - ); + const prefixMap = {} as Partial>; + for (const lng of i18n.languages) { + const prefix = lng.split("-")[0]; + if (!prefixMap[prefix]) { + prefixMap[prefix] = []; + } + prefixMap[prefix].push(lng); + } for (let i = 0; i < acceptLanguages.length; i += 1) { const lng = acceptLanguages[i]; const prefix = lng.split("-")[0];