You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					103 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					103 lines
				
				2.5 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
									MIT License http://www.opensource.org/licenses/mit-license.php
							 | 
						||
| 
								 | 
							
									Author Tobias Koppers @sokra
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								/*globals __webpack_hash__ */
							 | 
						||
| 
								 | 
							
								if (module.hot) {
							 | 
						||
| 
								 | 
							
									var lastHash;
							 | 
						||
| 
								 | 
							
									var upToDate = function upToDate() {
							 | 
						||
| 
								 | 
							
										return lastHash.indexOf(__webpack_hash__) >= 0;
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
									var log = require("./log");
							 | 
						||
| 
								 | 
							
									var check = function check() {
							 | 
						||
| 
								 | 
							
										module.hot
							 | 
						||
| 
								 | 
							
											.check()
							 | 
						||
| 
								 | 
							
											.then(function(updatedModules) {
							 | 
						||
| 
								 | 
							
												if (!updatedModules) {
							 | 
						||
| 
								 | 
							
													log("warning", "[HMR] Cannot find update. Need to do a full reload!");
							 | 
						||
| 
								 | 
							
													log(
							 | 
						||
| 
								 | 
							
														"warning",
							 | 
						||
| 
								 | 
							
														"[HMR] (Probably because of restarting the webpack-dev-server)"
							 | 
						||
| 
								 | 
							
													);
							 | 
						||
| 
								 | 
							
													return;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												return module.hot
							 | 
						||
| 
								 | 
							
													.apply({
							 | 
						||
| 
								 | 
							
														ignoreUnaccepted: true,
							 | 
						||
| 
								 | 
							
														ignoreDeclined: true,
							 | 
						||
| 
								 | 
							
														ignoreErrored: true,
							 | 
						||
| 
								 | 
							
														onUnaccepted: function(data) {
							 | 
						||
| 
								 | 
							
															log(
							 | 
						||
| 
								 | 
							
																"warning",
							 | 
						||
| 
								 | 
							
																"Ignored an update to unaccepted module " +
							 | 
						||
| 
								 | 
							
																	data.chain.join(" -> ")
							 | 
						||
| 
								 | 
							
															);
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														onDeclined: function(data) {
							 | 
						||
| 
								 | 
							
															log(
							 | 
						||
| 
								 | 
							
																"warning",
							 | 
						||
| 
								 | 
							
																"Ignored an update to declined module " +
							 | 
						||
| 
								 | 
							
																	data.chain.join(" -> ")
							 | 
						||
| 
								 | 
							
															);
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														onErrored: function(data) {
							 | 
						||
| 
								 | 
							
															log("error", data.error);
							 | 
						||
| 
								 | 
							
															log(
							 | 
						||
| 
								 | 
							
																"warning",
							 | 
						||
| 
								 | 
							
																"Ignored an error while updating module " +
							 | 
						||
| 
								 | 
							
																	data.moduleId +
							 | 
						||
| 
								 | 
							
																	" (" +
							 | 
						||
| 
								 | 
							
																	data.type +
							 | 
						||
| 
								 | 
							
																	")"
							 | 
						||
| 
								 | 
							
															);
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													})
							 | 
						||
| 
								 | 
							
													.then(function(renewedModules) {
							 | 
						||
| 
								 | 
							
														if (!upToDate()) {
							 | 
						||
| 
								 | 
							
															check();
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
														require("./log-apply-result")(updatedModules, renewedModules);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
														if (upToDate()) {
							 | 
						||
| 
								 | 
							
															log("info", "[HMR] App is up to date.");
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													});
							 | 
						||
| 
								 | 
							
											})
							 | 
						||
| 
								 | 
							
											.catch(function(err) {
							 | 
						||
| 
								 | 
							
												var status = module.hot.status();
							 | 
						||
| 
								 | 
							
												if (["abort", "fail"].indexOf(status) >= 0) {
							 | 
						||
| 
								 | 
							
													log(
							 | 
						||
| 
								 | 
							
														"warning",
							 | 
						||
| 
								 | 
							
														"[HMR] Cannot check for update. Need to do a full reload!"
							 | 
						||
| 
								 | 
							
													);
							 | 
						||
| 
								 | 
							
													log("warning", "[HMR] " + log.formatError(err));
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													log("warning", "[HMR] Update check failed: " + log.formatError(err));
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
									var hotEmitter = require("./emitter");
							 | 
						||
| 
								 | 
							
									hotEmitter.on("webpackHotUpdate", function(currentHash) {
							 | 
						||
| 
								 | 
							
										lastHash = currentHash;
							 | 
						||
| 
								 | 
							
										if (!upToDate()) {
							 | 
						||
| 
								 | 
							
											var status = module.hot.status();
							 | 
						||
| 
								 | 
							
											if (status === "idle") {
							 | 
						||
| 
								 | 
							
												log("info", "[HMR] Checking for updates on the server...");
							 | 
						||
| 
								 | 
							
												check();
							 | 
						||
| 
								 | 
							
											} else if (["abort", "fail"].indexOf(status) >= 0) {
							 | 
						||
| 
								 | 
							
												log(
							 | 
						||
| 
								 | 
							
													"warning",
							 | 
						||
| 
								 | 
							
													"[HMR] Cannot apply update as a previous update " +
							 | 
						||
| 
								 | 
							
														status +
							 | 
						||
| 
								 | 
							
														"ed. Need to do a full reload!"
							 | 
						||
| 
								 | 
							
												);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
									log("info", "[HMR] Waiting for update signal from WDS...");
							 | 
						||
| 
								 | 
							
								} else {
							 | 
						||
| 
								 | 
							
									throw new Error("[HMR] Hot Module Replacement is disabled.");
							 | 
						||
| 
								 | 
							
								}
							 |