(script: ScriptRunResource, scriptUrlPatterns: URLRuleEntry[])
| 159 | } |
| 160 | |
| 161 | export function parseScriptLoadInfo(script: ScriptRunResource, scriptUrlPatterns: URLRuleEntry[]): ScriptLoadInfo { |
| 162 | const metadataStr = getMetadataStr(script.code) || ""; |
| 163 | const userConfigStr = getUserConfigStr(script.code) || ""; |
| 164 | // 判断是否有正则表达式类型的 URLPattern |
| 165 | let hasRegex = false; |
| 166 | for (const pattern of scriptUrlPatterns) { |
| 167 | if (pattern.ruleType === RuleType.REGEX_INCLUDE || pattern.ruleType === RuleType.REGEX_EXCLUDE) { |
| 168 | hasRegex = true; |
| 169 | break; |
| 170 | } |
| 171 | } |
| 172 | return { |
| 173 | ...script, |
| 174 | metadataStr, |
| 175 | userConfigStr, |
| 176 | // 如有 regex, 需要在 runtime 期间对整个 scriptUrlPatterns (包括但不限于 REGEX )进行测试 |
| 177 | scriptUrlPatterns: hasRegex ? scriptUrlPatterns : undefined, |
| 178 | }; |
| 179 | } |
| 180 | |
| 181 | export function compileInjectionCode( |
| 182 | scriptRes: ScriptRunResource, |
no test coverage detected