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