"use strict";const tagSource="{{{([\\s\\S]+?)}}}|{{([\\s\\S]+?)}}",tagRE=new RegExp(tagSource,"g"),expRE=new RegExp(tagSource),htmlRE=new RegExp("^{{{[\\s\\S]*}}}$"),sexpRE=new RegExp("^{{{([\\s\\S]+?)}}}$|^{{([\\s\\S]+?)}}$");function parseText(e){if(e=e.replace(/\n/g,""),!tagRE.test(e))return null;const t=[];let r,s,x,n,p,i,E=tagRE.lastIndex=0;for(;r=tagRE.exec(e);)s=r.index,s>E&&t.push({value:e.slice(E,s)}),x=htmlRE.test(r[0]),n=x?r[1]:r[2],p=n.charCodeAt(0),i=42===p,n=i?n.slice(1):n,t.push({tag:!0,value:n.trim(),html:x,oneTime:i}),E=s+r[0].length;return E<e.length&&t.push({value:e.slice(E)}),t}function isExpr(e){return expRE.test(e)}function singleExpr(e){return sexpRE.test(e.trim())}function removeExprffix(e){return singleExpr(e)?e.replace(/^\s*{{/,"").replace(/}}\s*$/,""):e}function addExprffix(e){return singleExpr(e)||(e="{{"+e+"}}"),e}module.exports={parseText:parseText,isExpr:isExpr,singleExpr:singleExpr,addExprffix:addExprffix,removeExprffix:removeExprffix};
|