importReplaceEnumeratorfrom"replace-enumerator"constexpr="{{greet}}, {{ name }} my name is {{ name2 }}."constenumerator=newReplaceEnumerator(/{{([\s\S]+?)}}/g)constcases=enumerator.parse(expr)for(constitemofcases){item.replace(match=>{console.log("before replacing")console.dir(match)switch(match.expression){case"greet": return"Hi!"case"name": return"Bob"case"name2": return"Sam"default: thrownewError(`${match} isn't expected`)}console.log("after replaced")console.dir(match)})}constresult=enumerator.toString()expect(result).toEqual("Hi!, Bob my name is Sam.")