UNPKG

preact-render-to-string

Version:

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

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