UNPKG

preact-render-to-string

Version:

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

3 lines (2 loc) 11.5 kB
import{options as t,Fragment as e}from"preact";if("function"!=typeof Symbol){var n=0;Symbol=function(t){return"@@"+t+ ++n},Symbol.for=function(t){return"@@"+t}}var r="diffed",o="__s",i="__d",a=/^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,c=/[\s\n\\/='"\0<>]/,l=/^(xlink|xmlns|xml)([A-Z])/,s=/^(?: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])/,u=/^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/,f=new Set(["draggable","spellcheck"]);function p(t){void 0!==t.__g?t.__g|=8:t[i]=!0}function g(t){void 0!==t.__g?t.__g&=-9:t[i]=!1}function d(t){return void 0!==t.__g?!!(8&t.__g):!0===t[i]}var y=/["&<]/;function b(t){if(0===t.length||!1===y.test(t))return t;for(var e=0,n=0,r="",o="";n<t.length;n++){switch(t.charCodeAt(n)){case 34:o="&quot;";break;case 38:o="&amp;";break;case 60:o="&lt;";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 m=function(t,e){return String(t).replace(/(\n+)/g,"$1"+(e||"\t"))},h=function(t,e,n){return String(t).length>(e||40)||!n&&-1!==String(t).indexOf("\n")||-1!==String(t).indexOf("<")},v={},_=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"]),x=/[A-Z]/g;function j(t){var e="";for(var n in t){var r=t[n];if(null!=r&&""!==r){var o="-"==n[0]?n:v[n]||(v[n]=n.replace(x,"-$&").toLowerCase()),i=";";"number"!=typeof r||o.startsWith("--")||_.has(o)||(i="px;"),e=e+o+":"+r+i}}return e||void 0}function S(t,e){return Array.isArray(e)?e.reduce(S,t):null!=e&&!1!==e&&t.push(e),t}function k(){this.__d=!0}function w(t,e){return{__v:t,context:e,props:t.props,setState:k,forceUpdate:k,__d:!0,__h:new Array(0)}}function A(t,e){var n=t.contextType,r=n&&e[n.__c];return null!=n?r?r.props.value:n.__:e}var O=[],C=[];function F(e,n,r,i){var a=t[o];t[o]=!0;try{return E(e,n||{},r,i)}finally{t.__c&&t.__c(e,C),t[o]=a,C.length=0}}function E(n,o,i,y,v,_){if(null==n||"boolean"==typeof n)return"";if("object"!=typeof n)return"function"==typeof n?"":b(n+"");var x=i.pretty,k=x&&"string"==typeof x?x:"\t";if(Array.isArray(n)){for(var O="",C=0;C<n.length;C++)x&&C>0&&(O+="\n"),O+=E(n[C],o,i,y,v,_);return O}if(void 0!==n.constructor)return"";t.__b&&t.__b(n);var F,$=n.type,H=n.props,L=!1;if("function"==typeof $){if(L=!0,!i.shallow||!y&&!1!==i.renderRootComponent||$===e){if($===e){var I=[];return S(I,n.props.children),E(I,o,i,!1!==i.shallowHighOrder,v,_)}var N,D=n.__c=w(n,o),W=t.__r;if($.prototype&&"function"==typeof $.prototype.render){var T=A($,o);(D=n.__c=new $(H,T)).__v=n,p(D),D.props=H,null==D.state&&(D.state={}),null==D._nextState&&null==D.__s&&(D._nextState=D.__s=D.state),D.context=T,$.getDerivedStateFromProps?D.state=Object.assign({},D.state,$.getDerivedStateFromProps(D.props,D.state)):D.componentWillMount&&(D.componentWillMount(),D.state=D._nextState!==D.state?D._nextState:D.__s!==D.state?D.__s:D.state),W&&W(n),N=D.render(D.props,D.state,D.context)}else for(var U=A($,o),Z=0;d(D)&&Z++<25;)g(D),W&&W(n),N=$.call(n.__c,H,U);D.getChildContext&&(o=Object.assign({},o,D.getChildContext()));var P=E(N,o,i,!1!==i.shallowHighOrder,v,_);return t[r]&&t[r](n),P}$=(F=$).displayName||F!==Function&&F.name||M(F)}var R,z,q="<"+$;if(H){var J=Object.keys(H);i&&!0===i.sortAttributes&&J.sort();for(var V=0;V<J.length;V++){var B=J[V],G=H[B];if("children"!==B){if(!c.test(B)&&(i&&i.allAttributes||"key"!==B&&"ref"!==B&&"__self"!==B&&"__source"!==B)){if("defaultValue"===B)B="value";else if("defaultChecked"===B)B="checked";else if("defaultSelected"===B)B="selected";else if("className"===B){if(void 0!==H.class)continue;B="class"}else"acceptCharset"===B?B="accept-charset":"httpEquiv"===B?B="http-equiv":l.test(B)?B=B.replace(l,"$1:$2").toLowerCase():"-"!==B.at(4)&&!f.has(B)||null==G?v?u.test(B)&&(B="panose1"===B?"panose-1":B.replace(/([A-Z])/g,"-$1").toLowerCase()):s.test(B)&&(B=B.toLowerCase()):G+="";if("htmlFor"===B){if(H.for)continue;B="for"}"style"===B&&G&&"object"==typeof G&&(G=j(G)),"a"===B[0]&&"r"===B[1]&&"boolean"==typeof G&&(G=String(G));var K=i.attributeHook&&i.attributeHook(B,G,o,i,L);if(K||""===K)q+=K;else if("dangerouslySetInnerHTML"===B)z=G&&G.__html;else if("textarea"===$&&"value"===B)R=G;else if((G||0===G||""===G)&&"function"!=typeof G){if(!(!0!==G&&""!==G||(G=B,i&&i.xml))){q=q+" "+B;continue}if("value"===B){if("select"===$){_=G;continue}"option"===$&&_==G&&void 0===H.selected&&(q+=" selected")}q=q+" "+B+'="'+b(G+"")+'"'}}}else R=G}}if(x){var Q=q.replace(/\n\s*/," ");Q===q||~Q.indexOf("\n")?x&&~q.indexOf("\n")&&(q+="\n"):q=Q}if(q+=">",c.test($))throw new Error($+" is not a valid HTML tag name in "+q);var X,Y=a.test($)||i.voidElements&&i.voidElements.test($),tt=[];if(z)x&&h(z)&&(z="\n"+k+m(z,k)),q+=z;else if(null!=R&&S(X=[],R).length){for(var et=x&&~q.indexOf("\n"),nt=!1,rt=0;rt<X.length;rt++){var ot=X[rt];if(null!=ot&&!1!==ot){var it=E(ot,o,i,!0,"svg"===$||"foreignObject"!==$&&v,_);if(x&&!et&&h(it)&&(et=!0),it)if(x){var at=it.length>0&&"<"!=it[0];nt&&at?tt[tt.length-1]+=it:tt.push(it),nt=at}else tt.push(it)}}if(x&&et)for(var ct=tt.length;ct--;)tt[ct]="\n"+k+m(tt[ct],k)}if(t[r]&&t[r](n),tt.length||z)q+=tt.join("");else if(i&&i.xml)return q.substring(0,q.length-1)+" />";return!Y||X||z?(x&&~q.indexOf("\n")&&(q+="\n"),q=q+"</"+$+">"):q=q.replace(/>$/," />"),q}function M(t){var e=(Function.prototype.toString.call(t).match(/^\s*function\s+([^( ]+)/)||"")[1];if(!e){for(var n=-1,r=O.length;r--;)if(O[r]===t){n=r;break}n<0&&(n=O.push(t)-1),e="UnnamedComponent"+n}return e}const $=/(\\|\"|\')/g;var H=function(t){return t.replace($,"\\$1")};const L=Object.prototype.toString,I=Date.prototype.toISOString,N=Error.prototype.toString,D=RegExp.prototype.toString,W=Symbol.prototype.toString,T=/^Symbol\((.*)\)(.*)$/,U=/\n/gi,Z=Object.getOwnPropertySymbols||(t=>[]);function P(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 R(t){return t!=+t?"NaN":0===t&&1/t<0?"-0":""+t}function z(t){return""===t.name?"[Function anonymous]":"[Function "+t.name+"]"}function q(t){return W.call(t).replace(T,"Symbol($1)")}function J(t){return"["+N.call(t)+"]"}function V(t){if(!0===t||!1===t)return""+t;if(void 0===t)return"undefined";if(null===t)return"null";const e=typeof t;if("number"===e)return R(t);if("string"===e)return'"'+H(t)+'"';if("function"===e)return z(t);if("symbol"===e)return q(t);const n=L.call(t);return"[object WeakMap]"===n?"WeakMap {}":"[object WeakSet]"===n?"WeakSet {}":"[object Function]"===n||"[object GeneratorFunction]"===n?z(t,min):"[object Symbol]"===n?q(t):"[object Date]"===n?I.call(t):"[object Error]"===n?J(t):"[object RegExp]"===n?D.call(t):"[object Arguments]"===n&&0===t.length?"Arguments []":P(n)&&0===t.length?t.constructor.name+" []":t instanceof Error&&J(t)}function B(t,e,n,r,o,i,a,c,l,s){let u="";if(t.length){u+=o;const f=n+e;for(let n=0;n<t.length;n++)u+=f+nt(t[n],e,f,r,o,i,a,c,l,s),n<t.length-1&&(u+=","+r);u+=o+n}return"["+u+"]"}function G(t,e,n,r,o,i,a,c,l,s){return(s?"":"Arguments ")+B(t,e,n,r,o,i,a,c,l,s)}function K(t,e,n,r,o,i,a,c,l,s){return(s?"":t.constructor.name+" ")+B(t,e,n,r,o,i,a,c,l,s)}function Q(t,e,n,r,o,i,a,c,l,s){let u="Map {";const f=t.entries();let p=f.next();if(!p.done){u+=o;const t=n+e;for(;!p.done;)u+=t+nt(p.value[0],e,t,r,o,i,a,c,l,s)+" => "+nt(p.value[1],e,t,r,o,i,a,c,l,s),p=f.next(),p.done||(u+=","+r);u+=o+n}return u+"}"}function X(t,e,n,r,o,i,a,c,l,s){let u=(s?"":t.constructor?t.constructor.name+" ":"Object ")+"{",f=Object.keys(t).sort();const p=Z(t);if(p.length&&(f=f.filter(t=>!("symbol"==typeof t||"[object Symbol]"===L.call(t))).concat(p)),f.length){u+=o;const p=n+e;for(let n=0;n<f.length;n++){const g=f[n];u+=p+nt(g,e,p,r,o,i,a,c,l,s)+": "+nt(t[g],e,p,r,o,i,a,c,l,s),n<f.length-1&&(u+=","+r)}u+=o+n}return u+"}"}function Y(t,e,n,r,o,i,a,c,l,s){let u="Set {";const f=t.entries();let p=f.next();if(!p.done){u+=o;const t=n+e;for(;!p.done;)u+=t+nt(p.value[1],e,t,r,o,i,a,c,l,s),p=f.next(),p.done||(u+=","+r);u+=o+n}return u+"}"}function tt(t,e,n,r,o,i,a,c,l,s){if((i=i.slice()).indexOf(t)>-1)return"[Circular]";i.push(t);const u=++c>a;if(!u&&t.toJSON&&"function"==typeof t.toJSON)return nt(t.toJSON(),e,n,r,o,i,a,c,l,s);const f=L.call(t);return"[object Arguments]"===f?u?"[Arguments]":G(t,e,n,r,o,i,a,c,l,s):P(f)?u?"[Array]":K(t,e,n,r,o,i,a,c,l,s):"[object Map]"===f?u?"[Map]":Q(t,e,n,r,o,i,a,c,l,s):"[object Set]"===f?u?"[Set]":Y(t,e,n,r,o,i,a,c,l,s):"object"==typeof t?u?"[Object]":X(t,e,n,r,o,i,a,c,l,s):void 0}function et(t,e,n,r,o,i,a,c,l,s){let u,f=!1;for(let e=0;e<l.length;e++)if(u=l[e],u.test(t)){f=!0;break}return!!f&&u.print(t,function(t){return nt(t,e,n,r,o,i,a,c,l,s)},function(t){const r=n+e;return r+t.replace(U,"\n"+r)},{edgeSpacing:o,spacing:r})}function nt(t,e,n,r,o,i,a,c,l,s){return V(t)||et(t,e,n,r,o,i,a,c,l,s)||tt(t,e,n,r,o,i,a,c,l,s)}const rt={indent:2,min:!1,maxDepth:Infinity,plugins:[]};function ot(t){if(Object.keys(t).forEach(t=>{if(!rt.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 it(t){const e={};return Object.keys(rt).forEach(n=>e[n]=t.hasOwnProperty(n)?t[n]:rt[n]),e.min&&(e.indent=0),e}function at(t){return new Array(t+1).join(" ")}var ct=function(t,e){let n,r;e?(ot(e),e=it(e)):e=rt;const o=e.min?" ":"\n",i=e.min?"":"\n";if(e&&e.plugins.length){n=at(e.indent),r=[];var a=et(t,n,"",o,i,r,e.maxDepth,0,e.plugins,e.min);if(a)return a}return V(t)||(n||(n=at(e.indent)),r||(r=[]),tt(t,n,"",o,i,r,e.maxDepth,0,e.plugins,e.min))},lt={test:function(t){return t&&"object"==typeof t&&"type"in t&&"props"in t&&"key"in t},print:function(t){return F(t,lt.context,lt.opts,!0)}},st={plugins:[lt]},ut={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 a="string"==typeof r.pretty?r.pretty:"\t";return"string"!==i?("function"!==i||r.functionNames?(lt.context=n,lt.opts=r,~(e=ct(e,st)).indexOf("\n")&&(e=m("\n"+e,a)+"\n")):e="Function",m("\n"+t+"={"+e+"}",a)):"\n"+a+t+'="'+b(e)+'"'},jsx:!0,xml:!1,functions:!0,functionNames:!0,skipFalseAttributes:!0,pretty:" "};function ft(t,e,n){var r=Object.assign({},ut,n||{});return r.jsx||(r.attributeHook=null),F(t,e,r)}var pt={shallow:!0};function gt(t,e,n){return ft(t,e,Object.assign({},pt,n||{}))}export{ft as default,ft as render,gt as shallowRender}; //# sourceMappingURL=index.module.js.map