123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- "use strict";
- var $installedChunks$ = undefined;
- var $loadUpdateChunk$ = undefined;
- var $moduleCache$ = undefined;
- var $moduleFactories$ = undefined;
- var $ensureChunkHandlers$ = undefined;
- var $hasOwnProperty$ = undefined;
- var $hmrModuleData$ = undefined;
- var $hmrDownloadUpdateHandlers$ = undefined;
- var $hmrInvalidateModuleHandlers$ = undefined;
- var __webpack_require__ = undefined;
- module.exports = function () {
- var currentUpdateChunks;
- var currentUpdate;
- var currentUpdateRemovedChunks;
- var currentUpdateRuntime;
- function applyHandler(options) {
- if ($ensureChunkHandlers$) delete $ensureChunkHandlers$.$key$Hmr;
- currentUpdateChunks = undefined;
- function getAffectedModuleEffects(updateModuleId) {
- var outdatedModules = [updateModuleId];
- var outdatedDependencies = {};
- var queue = outdatedModules.map(function (id) {
- return {
- chain: [id],
- id: id
- };
- });
- while (queue.length > 0) {
- var queueItem = queue.pop();
- var moduleId = queueItem.id;
- var chain = queueItem.chain;
- var module = $moduleCache$[moduleId];
- if (
- !module ||
- (module.hot._selfAccepted && !module.hot._selfInvalidated)
- )
- continue;
- if (module.hot._selfDeclined) {
- return {
- type: "self-declined",
- chain: chain,
- moduleId: moduleId
- };
- }
- if (module.hot._main) {
- return {
- type: "unaccepted",
- chain: chain,
- moduleId: moduleId
- };
- }
- for (var i = 0; i < module.parents.length; i++) {
- var parentId = module.parents[i];
- var parent = $moduleCache$[parentId];
- if (!parent) continue;
- if (parent.hot._declinedDependencies[moduleId]) {
- return {
- type: "declined",
- chain: chain.concat([parentId]),
- moduleId: moduleId,
- parentId: parentId
- };
- }
- if (outdatedModules.indexOf(parentId) !== -1) continue;
- if (parent.hot._acceptedDependencies[moduleId]) {
- if (!outdatedDependencies[parentId])
- outdatedDependencies[parentId] = [];
- addAllToSet(outdatedDependencies[parentId], [moduleId]);
- continue;
- }
- delete outdatedDependencies[parentId];
- outdatedModules.push(parentId);
- queue.push({
- chain: chain.concat([parentId]),
- id: parentId
- });
- }
- }
- return {
- type: "accepted",
- moduleId: updateModuleId,
- outdatedModules: outdatedModules,
- outdatedDependencies: outdatedDependencies
- };
- }
- function addAllToSet(a, b) {
- for (var i = 0; i < b.length; i++) {
- var item = b[i];
- if (a.indexOf(item) === -1) a.push(item);
- }
- }
- // at begin all updates modules are outdated
- // the "outdated" status can propagate to parents if they don't accept the children
- var outdatedDependencies = {};
- var outdatedModules = [];
- var appliedUpdate = {};
- var warnUnexpectedRequire = function warnUnexpectedRequire(module) {
- console.warn(
- "[HMR] unexpected require(" + module.id + ") to disposed module"
- );
- };
- for (var moduleId in currentUpdate) {
- if ($hasOwnProperty$(currentUpdate, moduleId)) {
- var newModuleFactory = currentUpdate[moduleId];
- /** @type {TODO} */
- var result;
- if (newModuleFactory) {
- result = getAffectedModuleEffects(moduleId);
- } else {
- result = {
- type: "disposed",
- moduleId: moduleId
- };
- }
- /** @type {Error|false} */
- var abortError = false;
- var doApply = false;
- var doDispose = false;
- var chainInfo = "";
- if (result.chain) {
- chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
- }
- switch (result.type) {
- case "self-declined":
- if (options.onDeclined) options.onDeclined(result);
- if (!options.ignoreDeclined)
- abortError = new Error(
- "Aborted because of self decline: " +
- result.moduleId +
- chainInfo
- );
- break;
- case "declined":
- if (options.onDeclined) options.onDeclined(result);
- if (!options.ignoreDeclined)
- abortError = new Error(
- "Aborted because of declined dependency: " +
- result.moduleId +
- " in " +
- result.parentId +
- chainInfo
- );
- break;
- case "unaccepted":
- if (options.onUnaccepted) options.onUnaccepted(result);
- if (!options.ignoreUnaccepted)
- abortError = new Error(
- "Aborted because " + moduleId + " is not accepted" + chainInfo
- );
- break;
- case "accepted":
- if (options.onAccepted) options.onAccepted(result);
- doApply = true;
- break;
- case "disposed":
- if (options.onDisposed) options.onDisposed(result);
- doDispose = true;
- break;
- default:
- throw new Error("Unexception type " + result.type);
- }
- if (abortError) {
- return {
- error: abortError
- };
- }
- if (doApply) {
- appliedUpdate[moduleId] = newModuleFactory;
- addAllToSet(outdatedModules, result.outdatedModules);
- for (moduleId in result.outdatedDependencies) {
- if ($hasOwnProperty$(result.outdatedDependencies, moduleId)) {
- if (!outdatedDependencies[moduleId])
- outdatedDependencies[moduleId] = [];
- addAllToSet(
- outdatedDependencies[moduleId],
- result.outdatedDependencies[moduleId]
- );
- }
- }
- }
- if (doDispose) {
- addAllToSet(outdatedModules, [result.moduleId]);
- appliedUpdate[moduleId] = warnUnexpectedRequire;
- }
- }
- }
- currentUpdate = undefined;
- // Store self accepted outdated modules to require them later by the module system
- var outdatedSelfAcceptedModules = [];
- for (var j = 0; j < outdatedModules.length; j++) {
- var outdatedModuleId = outdatedModules[j];
- var module = $moduleCache$[outdatedModuleId];
- if (
- module &&
- (module.hot._selfAccepted || module.hot._main) &&
- // removed self-accepted modules should not be required
- appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire &&
- // when called invalidate self-accepting is not possible
- !module.hot._selfInvalidated
- ) {
- outdatedSelfAcceptedModules.push({
- module: outdatedModuleId,
- require: module.hot._requireSelf,
- errorHandler: module.hot._selfAccepted
- });
- }
- }
- var moduleOutdatedDependencies;
- return {
- dispose: function () {
- currentUpdateRemovedChunks.forEach(function (chunkId) {
- delete $installedChunks$[chunkId];
- });
- currentUpdateRemovedChunks = undefined;
- var idx;
- var queue = outdatedModules.slice();
- while (queue.length > 0) {
- var moduleId = queue.pop();
- var module = $moduleCache$[moduleId];
- if (!module) continue;
- var data = {};
- // Call dispose handlers
- var disposeHandlers = module.hot._disposeHandlers;
- for (j = 0; j < disposeHandlers.length; j++) {
- disposeHandlers[j].call(null, data);
- }
- $hmrModuleData$[moduleId] = data;
- // disable module (this disables requires from this module)
- module.hot.active = false;
- // remove module from cache
- delete $moduleCache$[moduleId];
- // when disposing there is no need to call dispose handler
- delete outdatedDependencies[moduleId];
- // remove "parents" references from all children
- for (j = 0; j < module.children.length; j++) {
- var child = $moduleCache$[module.children[j]];
- if (!child) continue;
- idx = child.parents.indexOf(moduleId);
- if (idx >= 0) {
- child.parents.splice(idx, 1);
- }
- }
- }
- // remove outdated dependency from module children
- var dependency;
- for (var outdatedModuleId in outdatedDependencies) {
- if ($hasOwnProperty$(outdatedDependencies, outdatedModuleId)) {
- module = $moduleCache$[outdatedModuleId];
- if (module) {
- moduleOutdatedDependencies =
- outdatedDependencies[outdatedModuleId];
- for (j = 0; j < moduleOutdatedDependencies.length; j++) {
- dependency = moduleOutdatedDependencies[j];
- idx = module.children.indexOf(dependency);
- if (idx >= 0) module.children.splice(idx, 1);
- }
- }
- }
- }
- },
- apply: function (reportError) {
- // insert new code
- for (var updateModuleId in appliedUpdate) {
- if ($hasOwnProperty$(appliedUpdate, updateModuleId)) {
- $moduleFactories$[updateModuleId] = appliedUpdate[updateModuleId];
- }
- }
- // run new runtime modules
- for (var i = 0; i < currentUpdateRuntime.length; i++) {
- currentUpdateRuntime[i](__webpack_require__);
- }
- // call accept handlers
- for (var outdatedModuleId in outdatedDependencies) {
- if ($hasOwnProperty$(outdatedDependencies, outdatedModuleId)) {
- var module = $moduleCache$[outdatedModuleId];
- if (module) {
- moduleOutdatedDependencies =
- outdatedDependencies[outdatedModuleId];
- var callbacks = [];
- var errorHandlers = [];
- var dependenciesForCallbacks = [];
- for (var j = 0; j < moduleOutdatedDependencies.length; j++) {
- var dependency = moduleOutdatedDependencies[j];
- var acceptCallback =
- module.hot._acceptedDependencies[dependency];
- var errorHandler =
- module.hot._acceptedErrorHandlers[dependency];
- if (acceptCallback) {
- if (callbacks.indexOf(acceptCallback) !== -1) continue;
- callbacks.push(acceptCallback);
- errorHandlers.push(errorHandler);
- dependenciesForCallbacks.push(dependency);
- }
- }
- for (var k = 0; k < callbacks.length; k++) {
- try {
- callbacks[k].call(null, moduleOutdatedDependencies);
- } catch (err) {
- if (typeof errorHandlers[k] === "function") {
- try {
- errorHandlers[k](err, {
- moduleId: outdatedModuleId,
- dependencyId: dependenciesForCallbacks[k]
- });
- } catch (err2) {
- if (options.onErrored) {
- options.onErrored({
- type: "accept-error-handler-errored",
- moduleId: outdatedModuleId,
- dependencyId: dependenciesForCallbacks[k],
- error: err2,
- originalError: err
- });
- }
- if (!options.ignoreErrored) {
- reportError(err2);
- reportError(err);
- }
- }
- } else {
- if (options.onErrored) {
- options.onErrored({
- type: "accept-errored",
- moduleId: outdatedModuleId,
- dependencyId: dependenciesForCallbacks[k],
- error: err
- });
- }
- if (!options.ignoreErrored) {
- reportError(err);
- }
- }
- }
- }
- }
- }
- }
- // Load self accepted modules
- for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) {
- var item = outdatedSelfAcceptedModules[o];
- var moduleId = item.module;
- try {
- item.require(moduleId);
- } catch (err) {
- if (typeof item.errorHandler === "function") {
- try {
- item.errorHandler(err, {
- moduleId: moduleId,
- module: $moduleCache$[moduleId]
- });
- } catch (err2) {
- if (options.onErrored) {
- options.onErrored({
- type: "self-accept-error-handler-errored",
- moduleId: moduleId,
- error: err2,
- originalError: err
- });
- }
- if (!options.ignoreErrored) {
- reportError(err2);
- reportError(err);
- }
- }
- } else {
- if (options.onErrored) {
- options.onErrored({
- type: "self-accept-errored",
- moduleId: moduleId,
- error: err
- });
- }
- if (!options.ignoreErrored) {
- reportError(err);
- }
- }
- }
- }
- return outdatedModules;
- }
- };
- }
- $hmrInvalidateModuleHandlers$.$key$ = function (moduleId, applyHandlers) {
- if (!currentUpdate) {
- currentUpdate = {};
- currentUpdateRuntime = [];
- currentUpdateRemovedChunks = [];
- applyHandlers.push(applyHandler);
- }
- if (!$hasOwnProperty$(currentUpdate, moduleId)) {
- currentUpdate[moduleId] = $moduleFactories$[moduleId];
- }
- };
- $hmrDownloadUpdateHandlers$.$key$ = function (
- chunkIds,
- removedChunks,
- removedModules,
- promises,
- applyHandlers,
- updatedModulesList
- ) {
- applyHandlers.push(applyHandler);
- currentUpdateChunks = {};
- currentUpdateRemovedChunks = removedChunks;
- currentUpdate = removedModules.reduce(function (obj, key) {
- obj[key] = false;
- return obj;
- }, {});
- currentUpdateRuntime = [];
- chunkIds.forEach(function (chunkId) {
- if (
- $hasOwnProperty$($installedChunks$, chunkId) &&
- $installedChunks$[chunkId] !== undefined
- ) {
- promises.push($loadUpdateChunk$(chunkId, updatedModulesList));
- currentUpdateChunks[chunkId] = true;
- } else {
- currentUpdateChunks[chunkId] = false;
- }
- });
- if ($ensureChunkHandlers$) {
- $ensureChunkHandlers$.$key$Hmr = function (chunkId, promises) {
- if (
- currentUpdateChunks &&
- $hasOwnProperty$(currentUpdateChunks, chunkId) &&
- !currentUpdateChunks[chunkId]
- ) {
- promises.push($loadUpdateChunk$(chunkId));
- currentUpdateChunks[chunkId] = true;
- }
- };
- }
- };
- };
|