mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
22 lines
1.3 KiB
JavaScript
22 lines
1.3 KiB
JavaScript
/***********************************************************************************************************************************************************************
|
|
* 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 };
|