next
Version:
The React Framework
76 lines (74 loc) • 2.86 kB
JavaScript
/**
* 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
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "appBootstrap", {
enumerable: true,
get: function() {
return appBootstrap;
}
});
const _assetprefix = require("./asset-prefix");
const _setattributesfromprops = require("./set-attributes-from-props");
const version = "16.0.10";
window.next = {
version,
appDir: true
};
function loadScriptsInSequence(scripts, hydrate) {
if (!scripts || !scripts.length) {
return hydrate();
}
return scripts.reduce((promise, [src, props])=>{
return promise.then(()=>{
return new Promise((resolve, reject)=>{
const el = document.createElement('script');
if (props) {
(0, _setattributesfromprops.setAttributesFromProps)(el, props);
}
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();
});
}
function appBootstrap(hydrate) {
const assetPrefix = (0, _assetprefix.getAssetPrefix)();
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(assetPrefix);
});
}
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
Object.defineProperty(exports.default, '__esModule', { value: true });
Object.assign(exports.default, exports);
module.exports = exports.default;
}
//# sourceMappingURL=app-bootstrap.js.map