--- /dev/null
+/**
+ * @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;
+ });
+};