(fixes: DynamicThemeFix[])
| 39 | * @returns The combined fix |
| 40 | */ |
| 41 | export function combineFixes(fixes: DynamicThemeFix[]): DynamicThemeFix | null { |
| 42 | if (fixes.length === 0 || fixes[0].url[0] !== '*') { |
| 43 | logWarn('combineFixes() failed to construct a single fix', fixes); |
| 44 | return null; |
| 45 | } |
| 46 | |
| 47 | function combineArrays(arrays: string[][]): string[] { |
| 48 | return arrays.filter(Boolean).flat(); |
| 49 | } |
| 50 | |
| 51 | return { |
| 52 | url: [], |
| 53 | invert: combineArrays(fixes.map((fix) => fix.invert)), |
| 54 | css: fixes.map((fix) => fix.css).filter(Boolean).join('\n'), |
| 55 | ignoreInlineStyle: combineArrays(fixes.map((fix) => fix.ignoreInlineStyle)), |
| 56 | ignoreImageAnalysis: combineArrays(fixes.map((fix) => fix.ignoreImageAnalysis)), |
| 57 | ignoreCSSUrl: combineArrays(fixes.map((fix) => fix.ignoreCSSUrl)), |
| 58 | disableStyleSheetsProxy: fixes.some((fix) => fix.disableStyleSheetsProxy), |
| 59 | disableCustomElementRegistryProxy: fixes.some((fix) => fix.disableCustomElementRegistryProxy), |
| 60 | }; |
| 61 | } |
no test coverage detected