perf: variable replace rang (#2923)

This commit is contained in:
Archer
2024-10-15 16:42:42 +08:00
committed by GitHub
parent 4f1ce640a7
commit da281ea9ec
2 changed files with 9 additions and 11 deletions

View File

@@ -33,9 +33,9 @@ export function replaceVariable(text: any, obj: Record<string, string | number>)
for (const key in obj) {
const val = obj[key];
if (!['string', 'number'].includes(typeof val)) continue;
const formatVal = typeof val === 'object' ? JSON.stringify(val) : String(val);
text = text.replace(new RegExp(`{{(${key})}}`, 'g'), String(val));
text = text.replace(new RegExp(`{{(${key})}}`, 'g'), formatVal);
}
return text || '';
}
@@ -63,6 +63,7 @@ export const getNanoid = (size = 12) => {
return `${firstChar}${randomsStr}`;
};
export const customNanoid = (str: string, size: number) => customAlphabet(str, size)();
/* Custom text to reg, need to replace special chats */
export const replaceRegChars = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');

View File

@@ -398,15 +398,12 @@ export function replaceEditorVariable({
// Replace {{$xxx.xxx$}} to value
for (const key in allVariables) {
const val = allVariables[key];
const regex = new RegExp(`\\{\\{\\$(${val.nodeId}\\.${val.id})\\$\\}\\}`, 'g');
if (['string', 'number'].includes(typeof val.value)) {
text = text.replace(regex, String(val.value));
} else if (['object'].includes(typeof val.value)) {
text = text.replace(regex, JSON.stringify(val.value));
} else {
continue;
}
const variable = allVariables[key];
const val = variable.value;
const formatVal = typeof val === 'object' ? JSON.stringify(val) : String(val);
const regex = new RegExp(`\\{\\{\\$(${variable.nodeId}\\.${variable.id})\\$\\}\\}`, 'g');
text = text.replace(regex, formatVal);
}
return text || '';
}