@rest-hooks/ssr
Version:
Server Side Rendering helpers for Rest Hooks
2 lines (1 loc) • 3.06 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@rest-hooks/redux"),require("redux"),require("@rest-hooks/react")):"function"==typeof define&&define.amd?define(["exports","react","@rest-hooks/redux","redux","@rest-hooks/react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).restHookRest={},e.react,e.redux,e.redux$1,e.react$1)}(this,(function(e,t,r,o,n){"use strict";var a,i=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t;e.exports=function(e,r,o,n){t||(t="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var a=e&&e.defaultProps,i=arguments.length-3;if(r||0===i||(r={children:void 0}),1===i)r.children=n;else if(i>1){for(var s=new Array(i),l=0;l<i;l++)s[l]=arguments[l+3];r.children=s}if(r&&a)for(var c in a)void 0===r[c]&&(r[c]=a[c]);else r||(r=a||{});return{$$typeof:t,type:e,key:void 0===o?null:""+o,ref:null,props:r,_owner:null}},e.exports.__esModule=!0,e.exports.default=e.exports})),s=(a=i)&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a;const{createReducer:l,initialState:c,applyManager:d}=r.__INTERNAL__;const{initialState:u}=n.__INTERNAL__;function f(e,t){return void 0===e.text&&console.error(`#${t} is completely empty. This could be due to CSP issues.`),null!=e&&e.text?JSON.parse(null==e?void 0:e.text):void 0}const p=({data:e,nonce:t,id:r})=>{try{const o=JSON.stringify(e);return s("script",{id:r,type:"application/json",dangerouslySetInnerHTML:{__html:o},nonce:t})}catch(e){return console.error(`Error serializing json for ${r}`),console.error(e),null}};p.defaultProps={id:"rest-hooks-data"};var h=p;Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.ServerData=h,e.awaitInitialData=(e="rest-hooks-data")=>new Promise(((t,r)=>{let o;(o=document.getElementById(e))?t(f(o,e)):document.addEventListener("DOMContentLoaded",(()=>{o=document.getElementById(e),o?t(f(o,e)):r(new Error("failed to find DOM with rest hooks state"))}))})),e.createPersistedStore=function(e){var n;const a=new r.Controller,i=(e=null!=(n=e)?n:[new r.NetworkManager]).find((e=>e instanceof r.NetworkManager));if(void 0===i)throw new Error("managers must include a NetworkManager");const u=l(a),f=o.applyMiddleware(...d(e,a),r.PromiseifyMiddleware),p=o.createStore(u,c,f);e.forEach((e=>null==e.init?void 0:e.init(p.getState())));const h=e=>e,y=()=>h(p.getState());let m=!0;return[function({children:e}){return s(r.ExternalCacheProvider,{store:p,selector:h,controller:a},void 0,e)},function(){const e=i.allSettled();if(e)throw m=!1,e;if(m)throw m=!1,new Promise((e=>setTimeout(e,10)));return t.useSyncExternalStore(p.subscribe,y,y)},a,p]},e.createServerDataComponent=function(e,r="rest-hooks-data"){const o=({nonce:t})=>{const o=e();return s(h,{data:o,id:r,nonce:t})};return({nonce:e})=>s(t.Suspense,{},void 0,s(o,{nonce:e}))},e.getInitialData=(e="rest-hooks-data")=>{const t=document.getElementById(e);return t?f(t,e):u},Object.defineProperty(e,"__esModule",{value:!0})}));