UNPKG

preact-render-to-string

Version:

Render JSX to an HTML string, with support for Preact components.

3 lines (2 loc) 8.82 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact")):"function"==typeof define&&define.amd?define(["exports","preact"],t):t((e||self).preactRenderToString={},e.preact)}(this,function(e,t){var n=/[\s\n\\/='"\0<>]/,r=/^(xlink|xmlns|xml)([A-Z])/,o=/^(?:accessK|auto[A-Z]|cell|ch|col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|src[A-Z]|tabI|useM|item[A-Z])/,i=/^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/,a=new Set(["draggable","spellcheck"]),s=/["&<]/;function c(e){if(0===e.length||!1===s.test(e))return e;for(var t=0,n=0,r="",o="";n<e.length;n++){switch(e.charCodeAt(n)){case 34:o="&quot;";break;case 38:o="&amp;";break;case 60:o="&lt;";break;default:continue}n!==t&&(r+=e.slice(t,n)),r+=o,t=n+1}return n!==t&&(r+=e.slice(t,n)),r}var l={},u=new Set(["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","box-flex","box-flex-group","box-ordinal-group","column-count","fill-opacity","flex","flex-grow","flex-negative","flex-order","flex-positive","flex-shrink","flood-opacity","font-weight","grid-column","grid-row","line-clamp","line-height","opacity","order","orphans","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","widows","z-index","zoom"]),f=/[A-Z]/g;function p(e){var t="";for(var n in e){var r=e[n];if(null!=r&&""!==r){var o="-"==n[0]?n:l[n]||(l[n]=n.replace(f,"-$&").toLowerCase()),i=";";"number"!=typeof r||o.startsWith("--")||u.has(o)||(i="px;"),t=t+o+":"+r+i}}return t||void 0}function h(){this.__d=!0}function d(e,t){return{__v:e,context:t,props:e.props,setState:h,forceUpdate:h,__d:!0,__h:new Array(0)}}function v(e,t,n){if(!e.s){if(n instanceof _){if(!n.s)return void(n.o=v.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(v.bind(null,e,t),v.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var _=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){var r=new e,o=this.s;if(o){var i=1&o?t:n;if(i){try{v(r,1,i(this.v))}catch(e){v(r,2,e)}return r}return this}return this.o=function(e){try{var o=e.v;1&e.s?v(r,1,t?t(o):o):n?v(r,1,n(o)):v(r,2,o)}catch(e){v(r,2,e)}},r},e}();function m(e){return e instanceof _&&1&e.s}function g(e,t,n){for(var r;;){var o=e();if(m(o)&&(o=o.v),!o)return i;if(o.then){r=0;break}var i=n();if(i&&i.then){if(!m(i)){r=1;break}i=i.s}if(t){var a=t();if(a&&a.then&&!m(a)){r=2;break}}}var s=new _,c=v.bind(null,s,2);return(0===r?o.then(u):1===r?i.then(l):a.then(f)).then(void 0,c),s;function l(r){i=r;do{if(t&&(a=t())&&a.then&&!m(a))return void a.then(f).then(void 0,c);if(!(o=e())||m(o)&&!o.v)return void v(s,1,i);if(o.then)return void o.then(u).then(void 0,c);m(i=n())&&(i=i.v)}while(!i||!i.then);i.then(l).then(void 0,c)}function u(e){e?(i=n())&&i.then?i.then(l).then(void 0,c):l(i):v(s,1,i)}function f(){(o=e())?o.then?o.then(u).then(void 0,c):u(o):v(s,1,i)}}function y(e,t){try{var n=e()}catch(e){return t(!0,e)}return n&&n.then?n.then(t.bind(null,!1),t.bind(null,!0)):t(!1,n)}var b,k,w,x,S={},C=[],A=Array.isArray,T=Object.assign,F="";function L(e,n,r){var o=t.options.__s;t.options.__s=!0,b=t.options.__b,k=t.options.diffed,w=t.options.__r,x=t.options.unmount;var i=t.h(t.Fragment,null);i.__k=[e];try{var a=j(e,n||S,!1,void 0,i,!1,r);return A(a)?a.join(F):a}catch(e){if(e.then)throw new Error('Use "renderToStringAsync" for suspenseful rendering.');throw e}finally{t.options.__c&&t.options.__c(e,C),t.options.__s=o,C.length=0}}function E(e,t){var n,r=e.type,o=!0;return e.__c?(o=!1,(n=e.__c).state=n.__s):n=new r(e.props,t),e.__c=n,n.__v=e,n.props=e.props,n.context=t,n.__d=!0,null==n.state&&(n.state=S),null==n.__s&&(n.__s=n.state),r.getDerivedStateFromProps?n.state=T({},n.state,r.getDerivedStateFromProps(n.props,n.state)):o&&n.componentWillMount?(n.componentWillMount(),n.state=n.__s!==n.state?n.__s:n.state):!o&&n.componentWillUpdate&&n.componentWillUpdate(),w&&w(e),n.render(n.props,n.state,t)}function j(e,s,l,u,f,h,v){if(null==e||!0===e||!1===e||e===F)return F;var _=typeof e;if("object"!=_)return"function"==_?F:"string"==_?c(e):e+F;if(A(e)){var m,g=F;f.__k=e;for(var y=e.length,C=0;C<y;C++){var L=e[C];if(null!=L&&"boolean"!=typeof L){var P,M=j(L,s,l,u,f,h,v);"string"==typeof M?g+=M:(m||(m=new Array(y)),g&&m.push(g),g=F,A(M)?(P=m).push.apply(P,M):m.push(M))}}return m?(g&&m.push(g),m):g}if(void 0!==e.constructor)return F;e.__=f,b&&b(e);var U=e.type,Z=e.props;if("function"==typeof U){var W,$,q,z=s;if(U===t.Fragment){if("tpl"in Z){for(var H=F,N=0;N<Z.tpl.length;N++)if(H+=Z.tpl[N],Z.exprs&&N<Z.exprs.length){var B=Z.exprs[N];if(null==B)continue;"object"!=typeof B||void 0!==B.constructor&&!A(B)?H+=B:H+=j(B,s,l,u,e,h,v)}return H}if("UNSTABLE_comment"in Z)return"\x3c!--"+c(Z.UNSTABLE_comment)+"--\x3e";$=Z.children}else{if(null!=(W=U.contextType)){var I=s[W.__c];z=I?I.props.value:W.__}var O=U.prototype&&"function"==typeof U.prototype.render;if(O)$=E(e,z),q=e.__c;else{e.__c=q=d(e,z);for(var R=0;q.__d&&R++<25;)q.__d=!1,w&&w(e),$=U.call(q,Z,z);q.__d=!0}if(null!=q.getChildContext&&(s=T({},s,q.getChildContext())),O&&t.options.errorBoundaries&&(U.getDerivedStateFromError||q.componentDidCatch)){$=null!=$&&$.type===t.Fragment&&null==$.key&&null==$.props.tpl?$.props.children:$;try{return j($,s,l,u,e,h,v)}catch(n){return U.getDerivedStateFromError&&(q.__s=U.getDerivedStateFromError(n)),q.componentDidCatch&&q.componentDidCatch(n,S),q.__d?($=E(e,s),null!=(q=e.__c).getChildContext&&(s=T({},s,q.getChildContext())),j($=null!=$&&$.type===t.Fragment&&null==$.key&&null==$.props.tpl?$.props.children:$,s,l,u,e,h,v)):F}finally{k&&k(e),x&&x(e)}}}$=null!=$&&$.type===t.Fragment&&null==$.key&&null==$.props.tpl?$.props.children:$;try{var V=j($,s,l,u,e,h,v);return k&&k(e),t.options.unmount&&t.options.unmount(e),V}catch(n){if(!h&&v&&v.onError){var K=v.onError(n,e,function(e,t){return j(e,s,l,u,t,h,v)});if(void 0!==K)return K;var G=t.options.__e;return G&&G(n,e),F}if(!h)throw n;if(!n||"function"!=typeof n.then)throw n;return n.then(function t(){try{return j($,s,l,u,e,h,v)}catch(n){if(!n||"function"!=typeof n.then)throw n;return n.then(function(){return j($,s,l,u,e,h,v)},t)}})}}var J,Q="<"+U,X=F;for(var Y in Z){var ee=Z[Y];if("function"!=typeof ee||"class"===Y||"className"===Y){switch(Y){case"children":J=ee;continue;case"key":case"ref":case"__self":case"__source":continue;case"htmlFor":if("for"in Z)continue;Y="for";break;case"className":if("class"in Z)continue;Y="class";break;case"defaultChecked":Y="checked";break;case"defaultSelected":Y="selected";break;case"defaultValue":case"value":switch(Y="value",U){case"textarea":J=ee;continue;case"select":u=ee;continue;case"option":u!=ee||"selected"in Z||(Q+=" selected")}break;case"dangerouslySetInnerHTML":X=ee&&ee.__html;continue;case"style":"object"==typeof ee&&(ee=p(ee));break;case"acceptCharset":Y="accept-charset";break;case"httpEquiv":Y="http-equiv";break;default:if(r.test(Y))Y=Y.replace(r,"$1:$2").toLowerCase();else{if(n.test(Y))continue;"-"!==Y[4]&&!a.has(Y)||null==ee?l?i.test(Y)&&(Y="panose1"===Y?"panose-1":Y.replace(/([A-Z])/g,"-$1").toLowerCase()):o.test(Y)&&(Y=Y.toLowerCase()):ee+=F}}null!=ee&&!1!==ee&&(Q=!0===ee||ee===F?Q+" "+Y:Q+" "+Y+'="'+("string"==typeof ee?c(ee):ee+F)+'"')}}if(n.test(U))throw new Error(U+" is not a valid HTML tag name in "+Q+">");if(X||("string"==typeof J?X=c(J):null!=J&&!1!==J&&!0!==J&&(X=j(J,s,"svg"===U||"foreignObject"!==U&&l,u,e,h,v))),k&&k(e),x&&x(e),!X&&D.has(U))return Q+"/>";var te="</"+U+">",ne=Q+">";return A(X)?[ne].concat(X,[te]):"string"!=typeof X?[ne,X,te]:ne+X+te}var D=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),P=L,M=L;e.default=L,e.render=P,e.renderToStaticMarkup=M,e.renderToString=L,e.renderToStringAsync=function(e,n){try{var r=t.options.__s;t.options.__s=!0,b=t.options.__b,k=t.options.diffed,w=t.options.__r,x=t.options.unmount;var o=t.h(t.Fragment,null);return o.__k=[e],Promise.resolve(y(function(){return Promise.resolve(j(e,n||S,!1,void 0,o,!0,void 0)).then(function(e){var t,n=function(){if(A(e)){var n=function(){var e=o.join(F);return t=1,e},r=0,o=e,i=g(function(){return!!o.some(function(e){return e&&"function"==typeof e.then})&&r++<25},void 0,function(){return Promise.resolve(Promise.all(o)).then(function(e){o=e.flat()})});return i&&i.then?i.then(n):n()}}();return n&&n.then?n.then(function(n){return t?n:e}):t?n:e})},function(n,o){if(t.options.__c&&t.options.__c(e,C),t.options.__s=r,C.length=0,n)throw o;return o}))}catch(e){return Promise.reject(e)}}}); //# sourceMappingURL=index.umd.js.map