zhangjian
2023-06-05 0976d2d0f90cff460cedfdc8bd74e98c2c31a58c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 * @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;
    });
};