You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							764 B
						
					
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							764 B
						
					
					
				/** | 
						|
 * @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; | 
						|
    }); | 
						|
};
 | 
						|
 |