UNPKG

next

Version:

The React Framework

62 lines (61 loc) 2.29 kB
/** * Before starting the Next.js runtime and requiring any module, we need to make * sure the following scripts are executed in the correct order: * - Polyfills * - next/script with `beforeInteractive` strategy */ const version = "15.3.4"; window.next = { version, appDir: true }; function loadScriptsInSequence(scripts, hydrate) { if (!scripts || !scripts.length) { return hydrate(); } return scripts.reduce((promise, param)=>{ let [src, props] = param; return promise.then(()=>{ return new Promise((resolve, reject)=>{ const el = document.createElement('script'); if (props) { for(const key in props){ if (key !== 'children') { el.setAttribute(key, props[key]); } } } if (src) { el.src = src; el.onload = ()=>resolve(); el.onerror = reject; } else if (props) { el.innerHTML = props.children; setTimeout(resolve); } document.head.appendChild(el); }); }); }, Promise.resolve()).catch((err)=>{ console.error(err); // Still try to hydrate even if there's an error. }).then(()=>{ hydrate(); }); } export function appBootstrap(hydrate) { loadScriptsInSequence(self.__next_s, ()=>{ // If the static shell is being debugged, skip hydration if the // `__nextppronly` query is present. This is only enabled when the // environment variable `__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING` is // set to `1`. Otherwise the following is optimized out. if (process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1') { const search = new URLSearchParams(window.location.search); if (search.get('__nextppronly') === 'fallback' || search.get('__nextppronly') === '1') { console.warn("Skipping hydration due to __nextppronly=" + search.get('__nextppronly')); return; } } hydrate(); }); } //# sourceMappingURL=app-bootstrap.js.map