tag-params
Version:
Transform a generic string into parameters suitable for template literals functions tags
1 lines • 609 B
JavaScript
self.tagParams=function(r){"use strict";var t=function(r){return r},n=Object.create(null),e=function(r,n){for(var e=n||t,u=[],a=[],c=r.length,i=0;i<=c;){var s=r.indexOf("${",i);if(-1<s){u.push(r.slice(i,s)),s=i=s+2;for(var l=1;0<l&&i<c;){var f=r[i++];l+="{"===f?1:"}"===f?-1:0}a.push(e(r.slice(s,i-1)))}else u.push(r.slice(i)),i=c+1}return{template:u,values:a}},u=function(r,t){var u=e(r,t),a=u.template,c=u.values,i=[a],s=Function("return function(){with(arguments[0])return["+c+"]}")();return function(r){return i.concat(s(r||n))}};return r.params=function(r,t){return u(r)(t)},r.parse=e,r.partial=u,r}({});