| /** | |
|  * @fileoverview Interpolate keys from an object into a string with {{ }} markers. | |
|  * @author Jed Fox | |
|  */ | |
| 
 | |
| "use strict"; | |
| 
 | |
| //------------------------------------------------------------------------------ | |
| // Public Interface | |
| //------------------------------------------------------------------------------ | |
|  | |
| module.exports = (text, data) => { | |
|     if (!data) { | |
|         return text; | |
|     } | |
| 
 | |
|     // Substitution content for any {{ }} markers. | |
|     return text.replace(/\{\{([^{}]+?)\}\}/gu, (fullMatch, termWithWhitespace) => { | |
|         const term = termWithWhitespace.trim(); | |
| 
 | |
|         if (term in data) { | |
|             return data[term]; | |
|         } | |
| 
 | |
|         // Preserve old behavior: If parameter name not provided, don't replace it. | |
|         return fullMatch; | |
|     }); | |
| };
 |