fix(Set Node): Handle special replacement patterns in JSON expressions (#18162)

This commit is contained in:
ongdisheng
2025-09-10 21:03:57 +08:00
committed by GitHub
parent f378a7e870
commit 2514301abd
2 changed files with 95 additions and 3 deletions

View File

@@ -232,10 +232,11 @@ export function resolveRawData(
for (const resolvable of resolvables) {
const resolvedValue = this.evaluateExpression(`${resolvable}`, i);
// Use a function replacer to avoid issues with special replacement patterns like $&
if (typeof resolvedValue === 'object' && resolvedValue !== null) {
returnData = returnData.replace(resolvable, JSON.stringify(resolvedValue));
returnData = returnData.replace(resolvable, () => JSON.stringify(resolvedValue));
} else {
returnData = returnData.replace(resolvable, resolvedValue as string);
returnData = returnData.replace(resolvable, () => String(resolvedValue));
}
}
}