preact-render-to-string
Version:
Render JSX to an HTML string, with support for Preact components.
3 lines (2 loc) • 3.97 kB
JavaScript
import{options as e,h as t,Fragment as r}from"preact";var o=/[\s\n\\/='"\0<>]/,a=/^xlink:?./,n=/["&<]/;function i(e){if(0===e.length||!1===n.test(e))return e;for(var t=0,r=0,o="",a="";r<e.length;r++){switch(e.charCodeAt(r)){case 34:a=""";break;case 38:a="&";break;case 60:a="<";break;default:continue}r!==t&&(o+=e.slice(t,r)),o+=a,t=r+1}return r!==t&&(o+=e.slice(t,r)),o}var s={},l=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"]),c=/[A-Z]/g;function u(e){var t="";for(var r in e){var o=e[r];if(null!=o&&""!==o){var a="-"==r[0]?r:s[r]||(s[r]=r.replace(c,"-$&").toLowerCase()),n=";";"number"!=typeof o||a.startsWith("--")||l.has(a)||(n="px;"),t=t+a+":"+o+n}}return t||void 0}var f,_,p,d,v=[],h=Array.isArray,g=Object.assign;function y(o,a){var n=e.__s;e.__s=!0,f=e.__b,_=e.diffed,p=e.__r,d=e.unmount;var i=t(r,null);i.__k=[o];try{return x(o,a||b,!1,void 0,i)}finally{e.__c&&e.__c(o,v),e.__s=n,v.length=0}}function m(){this.__d=!0}var b={};function k(e,t){var r=e.type,o=new r(e.props,t);return e.__c=o,o.__v=e,o.props=e.props,o.context=t,o.__d=!0,null==o.state&&(o.state=b),null==o.__s&&(o.__s=o.state),r.getDerivedStateFromProps?o.state=g({},o.state,r.getDerivedStateFromProps(o.props,o.state)):o.componentWillMount&&(o.componentWillMount(),o.state=o.__s!==o.state?o.__s:o.state),p&&p(e),o.render(o.props,o.state,t)}function x(e,t,n,s,l){if(null==e||!0===e||!1===e||""===e)return"";if("object"!=typeof e)return"function"==typeof e?"":i(e+"");if(h(e)){var c="";l.__k=e;for(var v=0;v<e.length;v++){var y=e[v];null!=y&&"boolean"!=typeof y&&(c+=x(y,t,n,s,l))}return c}if(void 0!==e.constructor)return"";e.__=l,f&&f(e);var b,S,j,A=e.type,L=e.props,M=t;if("function"==typeof A){if(A===r)S=L.children;else{if(null!=(b=A.contextType)){var z=t[b.__c];M=z?z.props.value:b.__}if(A.prototype&&"function"==typeof A.prototype.render)S=k(e,M),j=e.__c;else{e.__c=j={__v:e,props:L,context:M,setState:m,forceUpdate:m,__d:!0,__h:[]};for(var F=0;j.__d&&F++<25;)j.__d=!1,p&&p(e),S=A.call(j,L,M);j.__d=!0}null!=j.getChildContext&&(t=g({},t,j.getChildContext()))}var T=x(S=null!=S&&S.type===r&&null==S.key?S.props.children:S,t,n,s,e);return _&&_(e),e.__=void 0,d&&d(e),T}var W,D="<"+A,H="";for(var O in L){var P=L[O];switch(O){case"children":W=P;continue;case"key":case"ref":case"__self":case"__source":continue;case"htmlFor":if("for"in L)continue;O="for";break;case"className":if("class"in L)continue;O="class";break;case"defaultChecked":O="checked";break;case"defaultSelected":O="selected";break;case"defaultValue":case"value":switch(O="value",A){case"textarea":W=P;continue;case"select":s=P;continue;case"option":s!=P||"selected"in L||(D+=" selected")}break;case"dangerouslySetInnerHTML":H=P&&P.__html;continue;case"style":"object"==typeof P&&(P=u(P));break;default:if(n&&a.test(O))O=O.toLowerCase().replace(w,"xlink:");else{if(o.test(O))continue;"-"!==O[4]&&"draggable"!==O||null==P||(P+="")}}null!=P&&!1!==P&&"function"!=typeof P&&(D=!0===P||""===P?D+" "+O:D+" "+O+'="'+i(P+"")+'"')}if(o.test(A))throw new Error(A+" is not a valid HTML tag name in "+D+">");return H||("string"==typeof W?H=i(W):null!=W&&!1!==W&&!0!==W&&(H=x(W,t,"svg"===A||"foreignObject"!==A&&n,s,e))),_&&_(e),e.__=void 0,d&&d(e),!H&&C.has(A)?D+"/>":D+">"+H+"</"+A+">"}var w=/^xlink:?/,C=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),S=y,j=y;export default y;export{S as render,j as renderToStaticMarkup,y as renderToString};
//# sourceMappingURL=index.module.js.map