/*********************************************************************************************************************************************************************** * File Name: renderTemplate.util.js * Type of Program: Utility * Description: Plain-text {{placeholder}} substitution — no eval/Function, so * admin-supplied HTML can never execute arbitrary JS. Unknown or * missing keys resolve to an empty string rather than throwing. * Author: Kenneth Obsequio (@lash0000) * Date Created: Jul. 3, 2026 *********************************************************************************************************************************************************************** * HOW TO USE: * const { renderTemplate } = require('../utils/renderTemplate.util'); * renderTemplate('Hi {{name}}', { name: 'Ken' }); // "Hi Ken" ***********************************************************************************************************************************************************************/ const renderTemplate = (str, data = {}) => String(str ?? '').replace(/\{\{\s*(\w+)\s*\}\}/g, (_, key) => { const val = data[key]; return (val === undefined || val === null) ? '' : String(val); }); module.exports = { renderTemplate };