preact-render-to-string
Version:
Render JSX to an HTML string, with support for Preact components.
3 lines (2 loc) • 10.5 kB
JavaScript
if("function"!=typeof Symbol){var t=0;Symbol=function(n){return"@@"+n+ ++t},Symbol.for=function(t){return"@@"+t}}var n,e,r,o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|^--/i,i=/[&<>"]/g,u={"&":"&","<":"<",">":">",'"':"""},l=function(t){return u[t]||t},c=(n=function(t){return"string"!=typeof t&&(t=String(t)),t.replace(i,l)},e=new Map,function(t){var r=e.get(t);return r||(r=n(t),e.set(t,r)),r}),a=function(t,n){return String(t).replace(/(\n+)/g,"$1"+(n||"\t"))},f=function(t,n,e){return String(t).length>(n||40)||!e&&-1!==String(t).indexOf("\n")||-1!==String(t).indexOf("<")},s={};function p(t){var n="";for(var e in t){var r=t[e];null!=r&&(n&&(n+=" "),n+="-"==e[0]?e:s[e]||(s[e]=e.replace(/([A-Z])/g,"-$1").toLowerCase()),n+=": ",n+=r,"number"==typeof r&&!1===o.test(e)&&(n+="px"),n+=";")}return n||void 0}function _(t,n){for(var e in n)t[e]=n[e];return t}function y(t,n){return Array.isArray(n)?n.reduce(y,t):null!=n&&!1!==n&&t.push(n),t}function d(t,n,e,o,i){var u={type:t,props:n,key:e,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==i?++r.__v:i};return null!=r.vnode&&r.vnode(u),u}function g(t){return t.children}r={__e:function(t,n){for(var e,r,o,i=n.__h;n=n.__;)if((e=n.__c)&&!e.__)try{if((r=e.constructor)&&null!=r.getDerivedStateFromError&&(e.setState(r.getDerivedStateFromError(t)),o=e.__d),null!=e.componentDidCatch&&(e.componentDidCatch(t),o=e.__d),o)return n.__h=i,e.__E=e}catch(n){t=n}throw t},__v:0},"function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout;var m={shallow:!0},b=[],h=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,v=/[\s\n\\/='"\0<>]/,S=function(){};j.render=j;var x=[];function j(t,n,e){var o=A(t,n,e);return r.__c&&r.__c(t,x),o}function A(t,n,e,o,i,u){if(null==t||"boolean"==typeof t)return"";Array.isArray(t)&&(t=function(t,n,e){var r,o,i,u=arguments,l={};for(i in n)"key"==i?r=n[i]:"ref"==i?o=n[i]:l[i]=n[i];if(arguments.length>3)for(e=[e],i=3;i<arguments.length;i++)e.push(u[i]);if(null!=e&&(l.children=e),"function"==typeof t&&null!=t.defaultProps)for(i in t.defaultProps)void 0===l[i]&&(l[i]=t.defaultProps[i]);return d(t,l,r,o,null)}(g,null,t));var l=t.type,s=t.props,m=!1;n=n||{};var x,j=(e=e||{}).pretty,O=j&&"string"==typeof j?j:"\t";if("object"!=typeof t&&!l)return c(t);if("function"==typeof l){if(m=!0,!e.shallow||!o&&!1!==e.renderRootComponent){if(l===g){var k="",w=[];y(w,t.props.children);for(var F=0;F<w.length;F++)k+=(F>0&&j?"\n":"")+A(w[F],n,e,!1!==e.shallowHighOrder,i,u);return k}var E,C=t.__c={__v:t,context:n,props:t.props,setState:S,forceUpdate:S,__h:[]};if(r.__b&&r.__b(t),r.__r&&r.__r(t),l.prototype&&"function"==typeof l.prototype.render){var D=l.contextType,M=D&&n[D.__c],P=null!=D?M?M.props.value:D.__:n;(C=t.__c=new l(s,P)).__v=t,C._dirty=C.__d=!0,C.props=s,null==C.state&&(C.state={}),null==C._nextState&&null==C.__s&&(C._nextState=C.__s=C.state),C.context=P,l.getDerivedStateFromProps?C.state=_(_({},C.state),l.getDerivedStateFromProps(C.props,C.state)):C.componentWillMount&&(C.componentWillMount(),C.state=C._nextState!==C.state?C._nextState:C.__s!==C.state?C.__s:C.state),E=C.render(C.props,C.state,C.context)}else{var N=l.contextType,H=N&&n[N.__c];E=l.call(t.__c,s,null!=N?H?H.props.value:N.__:n)}return C.getChildContext&&(n=_(_({},n),C.getChildContext())),r.diffed&&r.diffed(t),A(E,n,e,!1!==e.shallowHighOrder,i,u)}l=(x=l).displayName||x!==Function&&x.name||function(t){var n=(Function.prototype.toString.call(t).match(/^\s*function\s+([^( ]+)/)||"")[1];if(!n){for(var e=-1,r=b.length;r--;)if(b[r]===t){e=r;break}e<0&&(e=b.push(t)-1),n="UnnamedComponent"+e}return n}(x)}var I,$,T="";if(s){var U=Object.keys(s);e&&!0===e.sortAttributes&&U.sort();for(var W=0;W<U.length;W++){var L=U[W],R=s[L];if("children"!==L){if(!L.match(/[\s\n\\/='"\0<>]/)&&(e&&e.allAttributes||"key"!==L&&"ref"!==L&&"__self"!==L&&"__source"!==L&&"defaultValue"!==L)){if("className"===L){if(s.class)continue;L="class"}else i&&L.match(/^xlink:?./)&&(L=L.toLowerCase().replace(/^xlink:?/,"xlink:"));if("htmlFor"===L){if(s.for)continue;L="for"}"style"===L&&R&&"object"==typeof R&&(R=p(R)),"a"===L[0]&&"r"===L[1]&&"boolean"==typeof R&&(R=String(R));var J=e.attributeHook&&e.attributeHook(L,R,n,e,m);if(J||""===J)T+=J;else if("dangerouslySetInnerHTML"===L)$=R&&R.__html;else if("textarea"===l&&"value"===L)I=R;else if((R||0===R||""===R)&&"function"!=typeof R){if(!(!0!==R&&""!==R||(R=L,e&&e.xml))){T+=" "+L;continue}if("value"===L){if("select"===l){u=R;continue}"option"===l&&u==R&&(T+=" selected")}T+=" "+L+'="'+c(R)+'"'}}}else I=R}}if(j){var V=T.replace(/^\n\s*/," ");V===T||~V.indexOf("\n")?j&&~T.indexOf("\n")&&(T+="\n"):T=V}if(T="<"+l+T+">",v.test(String(l)))throw new Error(l+" is not a valid HTML tag name in "+T);var q,z=h.test(String(l))||e.voidElements&&e.voidElements.test(String(l)),B=[];if($)j&&f($)&&($="\n"+O+a($,O)),T+=$;else if(null!=I&&y(q=[],I).length){for(var G=j&&~T.indexOf("\n"),Z=!1,K=0;K<q.length;K++){var Q=q[K];if(null!=Q&&!1!==Q){var X=A(Q,n,e,!0,"svg"===l||"foreignObject"!==l&&i,u);if(j&&!G&&f(X)&&(G=!0),X)if(j){var Y=X.length>0&&"<"!=X[0];Z&&Y?B[B.length-1]+=X:B.push(X),Z=Y}else B.push(X)}}if(j&&G)for(var tt=B.length;tt--;)B[tt]="\n"+O+a(B[tt],O)}if(B.length||$)T+=B.join("");else if(e&&e.xml)return T.substring(0,T.length-1)+" />";return!z||q||$?(j&&~T.indexOf("\n")&&(T+="\n"),T+="</"+l+">"):T=T.replace(/>$/," />"),T}j.shallowRender=function(t,n){return j(t,n,m)};const O=/(\\|\"|\')/g,k=Object.prototype.toString,w=Date.prototype.toISOString,F=Error.prototype.toString,E=RegExp.prototype.toString,C=Symbol.prototype.toString,D=/^Symbol\((.*)\)(.*)$/,M=/\n/gi,P=Object.getOwnPropertySymbols||(t=>[]);function N(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.name?"[Function anonymous]":"[Function "+t.name+"]"}function I(t){return C.call(t).replace(D,"Symbol($1)")}function $(t){return"["+F.call(t)+"]"}function T(t){if(!0===t||!1===t)return""+t;if(void 0===t)return"undefined";if(null===t)return"null";const n=typeof t;if("number"===n)return function(t){return t!=+t?"NaN":0===t&&1/t<0?"-0":""+t}(t);if("string"===n)return'"'+function(t){return t.replace(O,"\\$1")}(t)+'"';if("function"===n)return H(t);if("symbol"===n)return I(t);const e=k.call(t);return"[object WeakMap]"===e?"WeakMap {}":"[object WeakSet]"===e?"WeakSet {}":"[object Function]"===e||"[object GeneratorFunction]"===e?H(t,min):"[object Symbol]"===e?I(t):"[object Date]"===e?w.call(t):"[object Error]"===e?$(t):"[object RegExp]"===e?E.call(t):"[object Arguments]"===e&&0===t.length?"Arguments []":N(e)&&0===t.length?t.constructor.name+" []":t instanceof Error&&$(t)}function U(t,n,e,r,o,i,u,l,c,a){let f="";if(t.length){f+=o;const s=e+n;for(let e=0;e<t.length;e++)f+=s+R(t[e],n,s,r,o,i,u,l,c,a),e<t.length-1&&(f+=","+r);f+=o+e}return"["+f+"]"}function W(t,n,e,r,o,i,u,l,c,a){if((i=i.slice()).indexOf(t)>-1)return"[Circular]";i.push(t);const f=++l>u;if(!f&&t.toJSON&&"function"==typeof t.toJSON)return R(t.toJSON(),n,e,r,o,i,u,l,c,a);const s=k.call(t);return"[object Arguments]"===s?f?"[Arguments]":function(t,n,e,r,o,i,u,l,c,a){return(a?"":"Arguments ")+U(t,n,e,r,o,i,u,l,c,a)}(t,n,e,r,o,i,u,l,c,a):N(s)?f?"[Array]":function(t,n,e,r,o,i,u,l,c,a){return(a?"":t.constructor.name+" ")+U(t,n,e,r,o,i,u,l,c,a)}(t,n,e,r,o,i,u,l,c,a):"[object Map]"===s?f?"[Map]":function(t,n,e,r,o,i,u,l,c,a){let f="Map {";const s=t.entries();let p=s.next();if(!p.done){f+=o;const t=e+n;for(;!p.done;)f+=t+R(p.value[0],n,t,r,o,i,u,l,c,a)+" => "+R(p.value[1],n,t,r,o,i,u,l,c,a),p=s.next(),p.done||(f+=","+r);f+=o+e}return f+"}"}(t,n,e,r,o,i,u,l,c,a):"[object Set]"===s?f?"[Set]":function(t,n,e,r,o,i,u,l,c,a){let f="Set {";const s=t.entries();let p=s.next();if(!p.done){f+=o;const t=e+n;for(;!p.done;)f+=t+R(p.value[1],n,t,r,o,i,u,l,c,a),p=s.next(),p.done||(f+=","+r);f+=o+e}return f+"}"}(t,n,e,r,o,i,u,l,c,a):"object"==typeof t?f?"[Object]":function(t,n,e,r,o,i,u,l,c,a){let f=(a?"":t.constructor?t.constructor.name+" ":"Object ")+"{",s=Object.keys(t).sort();const p=P(t);if(p.length&&(s=s.filter(t=>!("symbol"==typeof t||"[object Symbol]"===k.call(t))).concat(p)),s.length){f+=o;const p=e+n;for(let e=0;e<s.length;e++){const _=s[e];f+=p+R(_,n,p,r,o,i,u,l,c,a)+": "+R(t[_],n,p,r,o,i,u,l,c,a),e<s.length-1&&(f+=","+r)}f+=o+e}return f+"}"}(t,n,e,r,o,i,u,l,c,a):void 0}function L(t,n,e,r,o,i,u,l,c,a){let f,s=!1;for(let n=0;n<c.length;n++)if(f=c[n],f.test(t)){s=!0;break}return!!s&&f.print(t,function(t){return R(t,n,e,r,o,i,u,l,c,a)},function(t){const r=e+n;return r+t.replace(M,"\n"+r)},{edgeSpacing:o,spacing:r})}function R(t,n,e,r,o,i,u,l,c,a){return T(t)||L(t,n,e,r,o,i,u,l,c,a)||W(t,n,e,r,o,i,u,l,c,a)}const J={indent:2,min:!1,maxDepth:Infinity,plugins:[]};function V(t){return new Array(t+1).join(" ")}var q={test:function(t){return t&&"object"==typeof t&&"type"in t&&"props"in t&&"key"in t},print:function(t,n,e){return j(t,q.context,q.opts)}},z={plugins:[q]},B={attributeHook:function(t,n,e,r,o){var i=typeof n;if("dangerouslySetInnerHTML"===t)return!1;if(null==n||"function"===i&&!r.functions)return"";if(r.skipFalseAttributes&&!o&&(!1===n||("class"===t||"style"===t)&&""===n))return"";var u="string"==typeof r.pretty?r.pretty:"\t";return"string"!==i?("function"!==i||r.functionNames?(q.context=e,q.opts=r,~(n=function(t,n){let e,r;n?(function(t){if(Object.keys(t).forEach(t=>{if(!J.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")}(n),n=function(t){const n={};return Object.keys(J).forEach(e=>n[e]=t.hasOwnProperty(e)?t[e]:J[e]),n.min&&(n.indent=0),n}(n)):n=J;const o=n.min?" ":"\n",i=n.min?"":"\n";if(n&&n.plugins.length){e=V(n.indent),r=[];var u=L(t,e,"",o,i,r,n.maxDepth,0,n.plugins,n.min);if(u)return u}return T(t)||(e||(e=V(n.indent)),r||(r=[]),W(t,e,"",o,i,r,n.maxDepth,0,n.plugins,n.min))}(n,z)).indexOf("\n")&&(n=a("\n"+n,u)+"\n")):n="Function",a("\n"+t+"={"+n+"}",u)):"\n"+u+t+'="'+c(n)+'"'},jsx:!0,xml:!1,functions:!0,functionNames:!0,skipFalseAttributes:!0,pretty:" "};function G(t,n,e,r){return j(t,n,e=_(_({},B),e||{}))}export default G;export{G as render};
//# sourceMappingURL=jsx.module.js.map