69 lines
2.5 KiB
JavaScript
69 lines
2.5 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
|
||
|
var _react = _interopRequireDefault(require("react"));
|
||
|
|
||
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
||
|
|
||
|
var _domready = _interopRequireDefault(require("@mikaelkristiansson/domready"));
|
||
|
|
||
|
var _socketIo = _interopRequireDefault(require("./socketIo"));
|
||
|
|
||
|
var _emitter = _interopRequireDefault(require("./emitter"));
|
||
|
|
||
|
var _apiRunnerBrowser = require("./api-runner-browser");
|
||
|
|
||
|
var _loader = require("./loader");
|
||
|
|
||
|
var _devLoader = _interopRequireDefault(require("./dev-loader"));
|
||
|
|
||
|
var _syncRequires = _interopRequireDefault(require("./sync-requires"));
|
||
|
|
||
|
var _matchPaths = _interopRequireDefault(require("./match-paths.json"));
|
||
|
|
||
|
// Generated during bootstrap
|
||
|
window.___emitter = _emitter.default;
|
||
|
const loader = new _devLoader.default(_syncRequires.default, _matchPaths.default);
|
||
|
(0, _loader.setLoader)(loader);
|
||
|
loader.setApiRunner(_apiRunnerBrowser.apiRunner);
|
||
|
window.___loader = _loader.publicLoader; // Let the site/plugins run code very early.
|
||
|
|
||
|
(0, _apiRunnerBrowser.apiRunnerAsync)(`onClientEntry`).then(() => {
|
||
|
// Hook up the client to socket.io on server
|
||
|
const socket = (0, _socketIo.default)();
|
||
|
|
||
|
if (socket) {
|
||
|
socket.on(`reload`, () => {
|
||
|
window.location.reload();
|
||
|
});
|
||
|
}
|
||
|
/**
|
||
|
* Service Workers are persistent by nature. They stick around,
|
||
|
* serving a cached version of the site if they aren't removed.
|
||
|
* This is especially frustrating when you need to test the
|
||
|
* production build on your local machine.
|
||
|
*
|
||
|
* Let's warn if we find service workers in development.
|
||
|
*/
|
||
|
|
||
|
|
||
|
if (`serviceWorker` in navigator) {
|
||
|
navigator.serviceWorker.getRegistrations().then(registrations => {
|
||
|
if (registrations.length > 0) console.warn(`Warning: found one or more service workers present.`, `If your site isn't behaving as expected, you might want to remove these.`, registrations);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
const rootElement = document.getElementById(`___gatsby`);
|
||
|
const renderer = (0, _apiRunnerBrowser.apiRunner)(`replaceHydrateFunction`, undefined, _reactDom.default.render)[0];
|
||
|
Promise.all([loader.loadPage(`/dev-404-page/`), loader.loadPage(`/404.html`), loader.loadPage(window.location.pathname)]).then(() => {
|
||
|
const preferDefault = m => m && m.default || m;
|
||
|
|
||
|
let Root = preferDefault(require(`./root`));
|
||
|
(0, _domready.default)(() => {
|
||
|
renderer(_react.default.createElement(Root, null), rootElement, () => {
|
||
|
(0, _apiRunnerBrowser.apiRunner)(`onInitialClientRender`);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|