format-string-by-pattern
Version:
A module that formats a string based on a pattern
3 lines (2 loc) • 951 B
JavaScript
function e(e,r,t){return e.length+1===r.length&&r.endsWith(t)}function r(r,t){if(!t)return t;var n=String(t).replace(/[^\da-zA-Z\n|]/g,""),l=r.split(/[^\da-zA-Z\n|]/g).filter(Boolean).map((function(e){return e.length})),a=r.split(/[\da-zA-Z\n|]/g).filter(Boolean),u=a[0],c=a[a.length-1];if(r.startsWith(u)){var i=a.reduce((function(e,r,t){var n=l[t],a=e.value.slice(0,n),u=e.value.slice(n);return{result:a?e.result.concat(r,a):e.result,value:u}}),{result:"",value:n}).result.slice(0,r.length);return e(i,r,c)?i.concat(c):i}var v=l.reduce((function(e,r,t){var n=a[t]||"",l="$1"+n+"$2",u=r+e.prevSlice+e.prevSeparator.length,c=new RegExp("(.{"+u+"})(.)");return{prevSeparator:n,prevSlice:u,value:e.value.replace(c,l)}}),{prevSeparator:"",prevSlice:0,value:n}).value.slice(0,r.length);return e(v,r,c)?v.concat(c):v}export default function(e,t){return void 0===t?function(t){return r(e,t)}:r(e,t)}
//# sourceMappingURL=format-string-by-pattern.es5.js.map