@payloadcms/plugin-form-builder
Version:
Form builder plugin for Payload CMS
30 lines (29 loc) • 1.18 kB
JavaScript
import escapeHTML from 'escape-html';
import { keyValuePairToHtmlTable } from './keyValuePairToHtmlTable.js';
export const replaceDoubleCurlys = (str, variables)=>{
const regex = /\{\{(.+?)\}\}/g;
if (str && variables) {
return str.replace(regex, (_, variable)=>{
if (variable.includes('*')) {
if (variable === '*') {
return variables.map(({ field, value })=>`${escapeHTML(field)} : ${escapeHTML(value)}`).join(' <br /> ');
} else if (variable === '*:table') {
return keyValuePairToHtmlTable(variables.reduce((acc, { field, value })=>{
acc[field] = value;
return acc;
}, {}));
}
} else {
const foundVariable = variables.find(({ field: fieldName })=>{
return variable === fieldName;
});
if (foundVariable) {
return escapeHTML(foundVariable.value);
}
}
return variable;
});
}
return str;
};
//# sourceMappingURL=replaceDoubleCurlys.js.map