preact-render-to-string
Version:
Render JSX to an HTML string, with support for Preact components.
3 lines (2 loc) • 10.5 kB
JavaScript
var t=require("preact");if("function"!=typeof Symbol){var e=0;Symbol=function(t){return"@@"+t+ ++e},Symbol.for=function(t){return"@@"+t}}var n=/^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,r=/[\s\n\\/='"\0<>]/,o=/^xlink:?./,i=/["&<]/;function a(t){if(0===t.length||!1===i.test(t))return t;for(var e=0,n=0,r="",o="";n<t.length;n++){switch(t.charCodeAt(n)){case 34:o=""";break;case 38:o="&";break;case 60:o="<";break;default:continue}n!==e&&(r+=t.slice(e,n)),r+=o,e=n+1}return n!==e&&(r+=t.slice(e,n)),r}var u=function(t,e){return String(t).replace(/(\n+)/g,"$1"+(e||"\t"))},c=function(t,e,n){return String(t).length>(e||40)||!n&&-1!==String(t).indexOf("\n")||-1!==String(t).indexOf("<")},l={},f=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"]),s=/[A-Z]/g;function p(t){var e="";for(var n in t){var r=t[n];if(null!=r&&""!==r){var o="-"==n[0]?n:l[n]||(l[n]=n.replace(s,"-$&").toLowerCase()),i=";";"number"!=typeof r||o.startsWith("--")||f.has(o)||(i="px;"),e=e+o+":"+r+i}}return e||void 0}function d(t,e){return Array.isArray(e)?e.reduce(d,t):null!=e&&!1!==e&&t.push(e),t}function g(){this.__d=!0}function y(t,e){return{__v:t,context:e,props:t.props,setState:g,forceUpdate:g,__d:!0,__h:[]}}var b=[],v=[];function m(e,n,r,o){var i=t.options.__s;t.options.__s=!0;try{return h(e,n||{},r,o)}finally{t.options.__c&&t.options.__c(e,v),t.options.__s=i,v.length=0}}function h(e,i,l,f,s,g){if(null==e||"boolean"==typeof e)return"";if("object"!=typeof e)return"function"==typeof e?"":a(e+"");var b=l.pretty,v=b&&"string"==typeof b?b:"\t";if(Array.isArray(e)){for(var m="",x=0;x<e.length;x++)b&&x>0&&(m+="\n"),m+=h(e[x],i,l,f,s,g);return m}if(void 0!==e.constructor)return"";t.options.__b&&t.options.__b(e);var j,S=e.type,k=e.props,w=!1;if("function"==typeof S){if(w=!0,!l.shallow||!f&&!1!==l.renderRootComponent){if(S===t.Fragment){var O=[];return d(O,e.props.children),h(O,i,l,!1!==l.shallowHighOrder,s,g)}var A,F=e.__c=y(e,i),C=t.options.__r,E=i,M=S.contextType;if(null!=M){var H=i[M.__c];E=H?H.props.value:M.__}if(S.prototype&&"function"==typeof S.prototype.render)(F=e.__c=new S(k,E)).__v=e,F._dirty=F.__d=!0,F.props=k,null==F.state&&(F.state={}),null==F._nextState&&null==F.__s&&(F._nextState=F.__s=F.state),F.context=E,S.getDerivedStateFromProps?F.state=Object.assign({},F.state,S.getDerivedStateFromProps(F.props,F.state)):F.componentWillMount&&(F.componentWillMount(),F.state=F._nextState!==F.state?F._nextState:F.__s!==F.state?F.__s:F.state),C&&C(e),A=F.render(F.props,F.state,F.context);else for(var N=0;F.__d&&N++<25;)F.__d=!1,C&&C(e),A=S.call(e.__c,k,E);F.getChildContext&&(i=Object.assign({},i,F.getChildContext()));var D=h(A,i,l,!1!==l.shallowHighOrder,s,g);return t.options.diffed&&t.options.diffed(e),D}S=(j=S).displayName||j!==Function&&j.name||_(j)}var I,W,$="<"+S;if(k){var U=Object.keys(k);l&&!0===l.sortAttributes&&U.sort();for(var L=0;L<U.length;L++){var P=U[L],R=k[P];if("children"!==P){if(!r.test(P)&&(l&&l.allAttributes||"key"!==P&&"ref"!==P&&"__self"!==P&&"__source"!==P)){if("defaultValue"===P)P="value";else if("defaultChecked"===P)P="checked";else if("defaultSelected"===P)P="selected";else if("className"===P){if(void 0!==k.class)continue;P="class"}else s&&o.test(P)&&(P=P.toLowerCase().replace(/^xlink:?/,"xlink:"));if("htmlFor"===P){if(k.for)continue;P="for"}"style"===P&&R&&"object"==typeof R&&(R=p(R)),"a"===P[0]&&"r"===P[1]&&"boolean"==typeof R&&(R=String(R));var T=l.attributeHook&&l.attributeHook(P,R,i,l,w);if(T||""===T)$+=T;else if("dangerouslySetInnerHTML"===P)W=R&&R.__html;else if("textarea"===S&&"value"===P)I=R;else if((R||0===R||""===R)&&"function"!=typeof R){if(!(!0!==R&&""!==R||(R=P,l&&l.xml))){$=$+" "+P;continue}if("value"===P){if("select"===S){g=R;continue}"option"===S&&g==R&&void 0===k.selected&&($+=" selected")}$=$+" "+P+'="'+a(R+"")+'"'}}}else I=R}}if(b){var z=$.replace(/\n\s*/," ");z===$||~z.indexOf("\n")?b&&~$.indexOf("\n")&&($+="\n"):$=z}if($+=">",r.test(S))throw new Error(S+" is not a valid HTML tag name in "+$);var J,q=n.test(S)||l.voidElements&&l.voidElements.test(S),V=[];if(W)b&&c(W)&&(W="\n"+v+u(W,v)),$+=W;else if(null!=I&&d(J=[],I).length){for(var B=b&&~$.indexOf("\n"),G=!1,Z=0;Z<J.length;Z++){var K=J[Z];if(null!=K&&!1!==K){var Q=h(K,i,l,!0,"svg"===S||"foreignObject"!==S&&s,g);if(b&&!B&&c(Q)&&(B=!0),Q)if(b){var X=Q.length>0&&"<"!=Q[0];G&&X?V[V.length-1]+=Q:V.push(Q),G=X}else V.push(Q)}}if(b&&B)for(var Y=V.length;Y--;)V[Y]="\n"+v+u(V[Y],v)}if(t.options.diffed&&t.options.diffed(e),V.length||W)$+=V.join("");else if(l&&l.xml)return $.substring(0,$.length-1)+" />";return!q||J||W?(b&&~$.indexOf("\n")&&($+="\n"),$=$+"</"+S+">"):$=$.replace(/>$/," />"),$}function _(t){var e=(Function.prototype.toString.call(t).match(/^\s*function\s+([^( ]+)/)||"")[1];if(!e){for(var n=-1,r=b.length;r--;)if(b[r]===t){n=r;break}n<0&&(n=b.push(t)-1),e="UnnamedComponent"+n}return e}var x=/(\\|\"|\')/g,j=function(t){return t.replace(x,"\\$1")},S=Object.prototype.toString,k=Date.prototype.toISOString,w=Error.prototype.toString,O=RegExp.prototype.toString,A=Symbol.prototype.toString,F=/^Symbol\((.*)\)(.*)$/,C=/\n/gi,E=Object.getOwnPropertySymbols||function(t){return[]};function M(t){return"[object Array]"===t||"[object ArrayBuffer]"===t||"[object DataView]"===t||"[object Float32Array]"===t||"[object Float64Array]"===t||"[object Int8Array]"===t||"[object Int16Array]"===t||"[object Int32Array]"===t||"[object Uint8Array]"===t||"[object Uint8ClampedArray]"===t||"[object Uint16Array]"===t||"[object Uint32Array]"===t}function H(t){return t!=+t?"NaN":0===t&&1/t<0?"-0":""+t}function N(t){return""===t.name?"[Function anonymous]":"[Function "+t.name+"]"}function D(t){return A.call(t).replace(F,"Symbol($1)")}function I(t){return"["+w.call(t)+"]"}function W(t){if(!0===t||!1===t)return""+t;if(void 0===t)return"undefined";if(null===t)return"null";var e=typeof t;if("number"===e)return H(t);if("string"===e)return'"'+j(t)+'"';if("function"===e)return N(t);if("symbol"===e)return D(t);var n=S.call(t);return"[object WeakMap]"===n?"WeakMap {}":"[object WeakSet]"===n?"WeakSet {}":"[object Function]"===n||"[object GeneratorFunction]"===n?N(t,min):"[object Symbol]"===n?D(t):"[object Date]"===n?k.call(t):"[object Error]"===n?I(t):"[object RegExp]"===n?O.call(t):"[object Arguments]"===n&&0===t.length?"Arguments []":M(n)&&0===t.length?t.constructor.name+" []":t instanceof Error&&I(t)}function $(t,e,n,r,o,i,a,u,c,l){var f="";if(t.length){f+=o;for(var s=n+e,p=0;p<t.length;p++)f+=s+q(t[p],e,s,r,o,i,a,u,c,l),p<t.length-1&&(f+=","+r);f+=o+n}return"["+f+"]"}function U(t,e,n,r,o,i,a,u,c,l){return(l?"":"Arguments ")+$(t,e,n,r,o,i,a,u,c,l)}function L(t,e,n,r,o,i,a,u,c,l){return(l?"":t.constructor.name+" ")+$(t,e,n,r,o,i,a,u,c,l)}function P(t,e,n,r,o,i,a,u,c,l){var f="Map {",s=t.entries(),p=s.next();if(!p.done){f+=o;for(var d=n+e;!p.done;)f+=d+q(p.value[0],e,d,r,o,i,a,u,c,l)+" => "+q(p.value[1],e,d,r,o,i,a,u,c,l),(p=s.next()).done||(f+=","+r);f+=o+n}return f+"}"}function R(t,e,n,r,o,i,a,u,c,l){var f=(l?"":t.constructor?t.constructor.name+" ":"Object ")+"{",s=Object.keys(t).sort(),p=E(t);if(p.length&&(s=s.filter(function(t){return!("symbol"==typeof t||"[object Symbol]"===S.call(t))}).concat(p)),s.length){f+=o;for(var d=n+e,g=0;g<s.length;g++){var y=s[g];f+=d+q(y,e,d,r,o,i,a,u,c,l)+": "+q(t[y],e,d,r,o,i,a,u,c,l),g<s.length-1&&(f+=","+r)}f+=o+n}return f+"}"}function T(t,e,n,r,o,i,a,u,c,l){var f="Set {",s=t.entries(),p=s.next();if(!p.done){f+=o;for(var d=n+e;!p.done;)f+=d+q(p.value[1],e,d,r,o,i,a,u,c,l),(p=s.next()).done||(f+=","+r);f+=o+n}return f+"}"}function z(t,e,n,r,o,i,a,u,c,l){if((i=i.slice()).indexOf(t)>-1)return"[Circular]";i.push(t);var f=++u>a;if(!f&&t.toJSON&&"function"==typeof t.toJSON)return q(t.toJSON(),e,n,r,o,i,a,u,c,l);var s=S.call(t);return"[object Arguments]"===s?f?"[Arguments]":U(t,e,n,r,o,i,a,u,c,l):M(s)?f?"[Array]":L(t,e,n,r,o,i,a,u,c,l):"[object Map]"===s?f?"[Map]":P(t,e,n,r,o,i,a,u,c,l):"[object Set]"===s?f?"[Set]":T(t,e,n,r,o,i,a,u,c,l):"object"==typeof t?f?"[Object]":R(t,e,n,r,o,i,a,u,c,l):void 0}function J(t,e,n,r,o,i,a,u,c,l){for(var f,s=!1,p=0;p<c.length;p++)if((f=c[p]).test(t)){s=!0;break}return!!s&&f.print(t,function(t){return q(t,e,n,r,o,i,a,u,c,l)},function(t){var r=n+e;return r+t.replace(C,"\n"+r)},{edgeSpacing:o,spacing:r})}function q(t,e,n,r,o,i,a,u,c,l){return W(t)||J(t,e,n,r,o,i,a,u,c,l)||z(t,e,n,r,o,i,a,u,c,l)}var V={indent:2,min:!1,maxDepth:Infinity,plugins:[]};function B(t){if(Object.keys(t).forEach(function(t){if(!V.hasOwnProperty(t))throw new Error("prettyFormat: Invalid option: "+t)}),t.min&&void 0!==t.indent&&0!==t.indent)throw new Error("prettyFormat: Cannot run with min option and indent")}function G(t){var e={};return Object.keys(V).forEach(function(n){return e[n]=t.hasOwnProperty(n)?t[n]:V[n]}),e.min&&(e.indent=0),e}function Z(t){return new Array(t+1).join(" ")}var K=function(t,e){var n,r;e?(B(e),e=G(e)):e=V;var o=e.min?" ":"\n",i=e.min?"":"\n";if(e&&e.plugins.length){var a=J(t,n=Z(e.indent),"",o,i,r=[],e.maxDepth,0,e.plugins,e.min);if(a)return a}return W(t)||(n||(n=Z(e.indent)),r||(r=[]),z(t,n,"",o,i,r,e.maxDepth,0,e.plugins,e.min))},Q={test:function(t){return t&&"object"==typeof t&&"type"in t&&"props"in t&&"key"in t},print:function(t,e,n){return m(t,Q.context,Q.opts,!0)}},X={plugins:[Q]},Y={attributeHook:function(t,e,n,r,o){var i=typeof e;if("dangerouslySetInnerHTML"===t)return!1;if(null==e||"function"===i&&!r.functions)return"";if(r.skipFalseAttributes&&!o&&(!1===e||("class"===t||"style"===t)&&""===e))return"";var c="string"==typeof r.pretty?r.pretty:"\t";return"string"!==i?("function"!==i||r.functionNames?(Q.context=n,Q.opts=r,~(e=K(e,X)).indexOf("\n")&&(e=u("\n"+e,c)+"\n")):e="Function",u("\n"+t+"={"+e+"}",c)):"\n"+c+t+'="'+a(e)+'"'},jsx:!0,xml:!1,functions:!0,functionNames:!0,skipFalseAttributes:!0,pretty:" "};function tt(t,e,n){var r=Object.assign({},Y,n||{});return r.jsx||(r.attributeHook=null),m(t,e,r)}var et={shallow:!0};exports.default=tt,exports.render=tt,exports.shallowRender=function(t,e,n){return tt(t,e,Object.assign({},et,n||{}))};
//# sourceMappingURL=jsx.js.map