first commit
This commit is contained in:
63
app_vue/node_modules/webpack-dev-server/client/utils/reloadApp.js
generated
vendored
Normal file
63
app_vue/node_modules/webpack-dev-server/client/utils/reloadApp.js
generated
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
import hotEmitter from "webpack/hot/emitter.js";
|
||||
import { log } from "./log.js";
|
||||
|
||||
/** @typedef {import("../index").Options} Options
|
||||
/** @typedef {import("../index").Status} Status
|
||||
|
||||
/**
|
||||
* @param {Options} options
|
||||
* @param {Status} status
|
||||
*/
|
||||
function reloadApp(_ref, status) {
|
||||
var hot = _ref.hot,
|
||||
liveReload = _ref.liveReload;
|
||||
if (status.isUnloading) {
|
||||
return;
|
||||
}
|
||||
var currentHash = status.currentHash,
|
||||
previousHash = status.previousHash;
|
||||
var isInitial = currentHash.indexOf( /** @type {string} */previousHash) >= 0;
|
||||
if (isInitial) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Window} rootWindow
|
||||
* @param {number} intervalId
|
||||
*/
|
||||
function applyReload(rootWindow, intervalId) {
|
||||
clearInterval(intervalId);
|
||||
log.info("App updated. Reloading...");
|
||||
rootWindow.location.reload();
|
||||
}
|
||||
var search = self.location.search.toLowerCase();
|
||||
var allowToHot = search.indexOf("webpack-dev-server-hot=false") === -1;
|
||||
var allowToLiveReload = search.indexOf("webpack-dev-server-live-reload=false") === -1;
|
||||
if (hot && allowToHot) {
|
||||
log.info("App hot update...");
|
||||
hotEmitter.emit("webpackHotUpdate", status.currentHash);
|
||||
if (typeof self !== "undefined" && self.window) {
|
||||
// broadcast update to window
|
||||
self.postMessage("webpackHotUpdate".concat(status.currentHash), "*");
|
||||
}
|
||||
}
|
||||
// allow refreshing the page only if liveReload isn't disabled
|
||||
else if (liveReload && allowToLiveReload) {
|
||||
var rootWindow = self;
|
||||
|
||||
// use parent window for reload (in case we're in an iframe with no valid src)
|
||||
var intervalId = self.setInterval(function () {
|
||||
if (rootWindow.location.protocol !== "about:") {
|
||||
// reload immediately if protocol is valid
|
||||
applyReload(rootWindow, intervalId);
|
||||
} else {
|
||||
rootWindow = rootWindow.parent;
|
||||
if (rootWindow.parent === rootWindow) {
|
||||
// if parent equals current window we've reached the root which would continue forever, so trigger a reload anyways
|
||||
applyReload(rootWindow, intervalId);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
export default reloadApp;
|
Reference in New Issue
Block a user