puppeteer server: deduplication of launch option args

This commit is contained in:
AB498
2025-03-30 13:24:43 +06:00
parent 4f93f82009
commit 94029e6252

View File

@@ -186,7 +186,13 @@ function deepMerge(target: any, source: any): any {
const targetVal = target[key];
const sourceVal = source[key];
if (Array.isArray(targetVal) && Array.isArray(sourceVal)) {
output[key] = [...targetVal, ...sourceVal];
// Deduplicate args/ignoreDefaultArgs, prefer source values
output[key] = [...new Set([
...(key === 'args' || key === 'ignoreDefaultArgs' ?
targetVal.filter((arg: string) => !sourceVal.some((launchArg: string) => arg.startsWith('--') && launchArg.startsWith(arg.split('=')[0]))) :
targetVal),
...sourceVal
])];
} else if (sourceVal instanceof Object && key in target) {
output[key] = deepMerge(targetVal, sourceVal);
} else {