29 lines
		
	
	
		
			764 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			764 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @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;
 | 
						|
    });
 | 
						|
};
 |