source: frontend/node_modules/webpack/lib/hmr/HotModuleReplacement.runtime.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 10.2 KB
Line 
1// @ts-nocheck
2/*
3 MIT License http://www.opensource.org/licenses/mit-license.php
4 Author Tobias Koppers @sokra
5*/
6
7"use strict";
8
9var $interceptModuleExecution$ = undefined;
10var $moduleCache$ = undefined;
11var $hmrModuleData$ = undefined;
12/** @type {() => Promise} */
13var $hmrDownloadManifest$ = undefined;
14var $hmrDownloadUpdateHandlers$ = undefined;
15var $hmrInvalidateModuleHandlers$ = undefined;
16var __webpack_require__ = undefined;
17
18module.exports = function () {
19 var currentModuleData = {};
20 var installedModules = $moduleCache$;
21
22 // module and require creation
23 var currentChildModule;
24 var currentParents = [];
25
26 // status
27 var registeredStatusHandlers = [];
28 var currentStatus = "idle";
29
30 // while downloading
31 var blockingPromises = 0;
32 var blockingPromisesWaiting = [];
33
34 // The update info
35 var currentUpdateApplyHandlers;
36 var queuedInvalidatedModules;
37
38 $hmrModuleData$ = currentModuleData;
39
40 $interceptModuleExecution$.push(function (options) {
41 var module = options.module;
42 var require = createRequire(options.require, options.id);
43 module.hot = createModuleHotObject(options.id, module);
44 module.parents = currentParents;
45 module.children = [];
46 currentParents = [];
47 options.require = require;
48 });
49
50 $hmrDownloadUpdateHandlers$ = {};
51 $hmrInvalidateModuleHandlers$ = {};
52
53 function createRequire(require, moduleId) {
54 var me = installedModules[moduleId];
55 if (!me) return require;
56 var fn = function (request) {
57 if (me.hot.active) {
58 if (installedModules[request]) {
59 var parents = installedModules[request].parents;
60 if (parents.indexOf(moduleId) === -1) {
61 parents.push(moduleId);
62 }
63 } else {
64 currentParents = [moduleId];
65 currentChildModule = request;
66 }
67 if (me.children.indexOf(request) === -1) {
68 me.children.push(request);
69 }
70 } else {
71 console.warn(
72 "[HMR] unexpected require(" +
73 request +
74 ") from disposed module " +
75 moduleId
76 );
77 currentParents = [];
78 }
79 return require(request);
80 };
81 var createPropertyDescriptor = function (name) {
82 return {
83 configurable: true,
84 enumerable: true,
85 get: function () {
86 return require[name];
87 },
88 set: function (value) {
89 require[name] = value;
90 }
91 };
92 };
93 for (var name in require) {
94 if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") {
95 Object.defineProperty(fn, name, createPropertyDescriptor(name));
96 }
97 }
98 fn.e = function (chunkId, fetchPriority) {
99 return trackBlockingPromise(require.e(chunkId, fetchPriority));
100 };
101 return fn;
102 }
103
104 function createModuleHotObject(moduleId, me) {
105 var _main = currentChildModule !== moduleId;
106 var hot = {
107 // private stuff
108 _acceptedDependencies: {},
109 _acceptedErrorHandlers: {},
110 _declinedDependencies: {},
111 _selfAccepted: false,
112 _selfDeclined: false,
113 _selfInvalidated: false,
114 _disposeHandlers: [],
115 _main: _main,
116 _requireSelf: function () {
117 currentParents = me.parents.slice();
118 currentChildModule = _main ? undefined : moduleId;
119 __webpack_require__(moduleId);
120 },
121
122 // Module API
123 active: true,
124 accept: function (dep, callback, errorHandler) {
125 if (dep === undefined) hot._selfAccepted = true;
126 else if (typeof dep === "function") hot._selfAccepted = dep;
127 else if (typeof dep === "object" && dep !== null) {
128 for (var i = 0; i < dep.length; i++) {
129 hot._acceptedDependencies[dep[i]] = callback || function () {};
130 hot._acceptedErrorHandlers[dep[i]] = errorHandler;
131 }
132 } else {
133 hot._acceptedDependencies[dep] = callback || function () {};
134 hot._acceptedErrorHandlers[dep] = errorHandler;
135 }
136 },
137 decline: function (dep) {
138 if (dep === undefined) hot._selfDeclined = true;
139 else if (typeof dep === "object" && dep !== null)
140 for (var i = 0; i < dep.length; i++)
141 hot._declinedDependencies[dep[i]] = true;
142 else hot._declinedDependencies[dep] = true;
143 },
144 dispose: function (callback) {
145 hot._disposeHandlers.push(callback);
146 },
147 addDisposeHandler: function (callback) {
148 hot._disposeHandlers.push(callback);
149 },
150 removeDisposeHandler: function (callback) {
151 var idx = hot._disposeHandlers.indexOf(callback);
152 if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
153 },
154 invalidate: function () {
155 this._selfInvalidated = true;
156 switch (currentStatus) {
157 case "idle":
158 currentUpdateApplyHandlers = [];
159 Object.keys($hmrInvalidateModuleHandlers$).forEach(function (key) {
160 $hmrInvalidateModuleHandlers$[key](
161 moduleId,
162 currentUpdateApplyHandlers
163 );
164 });
165 setStatus("ready");
166 break;
167 case "ready":
168 Object.keys($hmrInvalidateModuleHandlers$).forEach(function (key) {
169 $hmrInvalidateModuleHandlers$[key](
170 moduleId,
171 currentUpdateApplyHandlers
172 );
173 });
174 break;
175 case "prepare":
176 case "check":
177 case "dispose":
178 case "apply":
179 (queuedInvalidatedModules = queuedInvalidatedModules || []).push(
180 moduleId
181 );
182 break;
183 default:
184 // ignore requests in error states
185 break;
186 }
187 },
188
189 // Management API
190 check: hotCheck,
191 apply: hotApply,
192 status: function (l) {
193 if (!l) return currentStatus;
194 registeredStatusHandlers.push(l);
195 },
196 addStatusHandler: function (l) {
197 registeredStatusHandlers.push(l);
198 },
199 removeStatusHandler: function (l) {
200 var idx = registeredStatusHandlers.indexOf(l);
201 if (idx >= 0) registeredStatusHandlers.splice(idx, 1);
202 },
203
204 // inherit from previous dispose call
205 data: currentModuleData[moduleId]
206 };
207 currentChildModule = undefined;
208 return hot;
209 }
210
211 function setStatus(newStatus) {
212 currentStatus = newStatus;
213 var results = [];
214
215 for (var i = 0; i < registeredStatusHandlers.length; i++)
216 results[i] = registeredStatusHandlers[i].call(null, newStatus);
217
218 return Promise.all(results).then(function () {});
219 }
220
221 function unblock() {
222 if (--blockingPromises === 0) {
223 setStatus("ready").then(function () {
224 if (blockingPromises === 0) {
225 var list = blockingPromisesWaiting;
226 blockingPromisesWaiting = [];
227 for (var i = 0; i < list.length; i++) {
228 list[i]();
229 }
230 }
231 });
232 }
233 }
234
235 function trackBlockingPromise(promise) {
236 switch (currentStatus) {
237 case "ready":
238 setStatus("prepare");
239 /* fallthrough */
240 case "prepare":
241 blockingPromises++;
242 promise.then(unblock, unblock);
243 return promise;
244 default:
245 return promise;
246 }
247 }
248
249 function waitForBlockingPromises(fn) {
250 if (blockingPromises === 0) return fn();
251 return new Promise(function (resolve) {
252 blockingPromisesWaiting.push(function () {
253 resolve(fn());
254 });
255 });
256 }
257
258 function hotCheck(applyOnUpdate) {
259 if (currentStatus !== "idle") {
260 throw new Error("check() is only allowed in idle status");
261 }
262 return setStatus("check")
263 .then($hmrDownloadManifest$)
264 .then(function (update) {
265 if (!update) {
266 return setStatus(applyInvalidatedModules() ? "ready" : "idle").then(
267 function () {
268 return null;
269 }
270 );
271 }
272
273 return setStatus("prepare").then(function () {
274 var updatedModules = [];
275 currentUpdateApplyHandlers = [];
276
277 return Promise.all(
278 Object.keys($hmrDownloadUpdateHandlers$).reduce(function (
279 promises,
280 key
281 ) {
282 $hmrDownloadUpdateHandlers$[key](
283 update.c,
284 update.r,
285 update.m,
286 promises,
287 currentUpdateApplyHandlers,
288 updatedModules,
289 update.css
290 );
291 return promises;
292 }, [])
293 ).then(function () {
294 return waitForBlockingPromises(function () {
295 if (applyOnUpdate) {
296 return internalApply(applyOnUpdate);
297 }
298 return setStatus("ready").then(function () {
299 return updatedModules;
300 });
301 });
302 });
303 });
304 });
305 }
306
307 function hotApply(options) {
308 if (currentStatus !== "ready") {
309 return Promise.resolve().then(function () {
310 throw new Error(
311 "apply() is only allowed in ready status (state: " +
312 currentStatus +
313 ")"
314 );
315 });
316 }
317 return internalApply(options);
318 }
319
320 function internalApply(options) {
321 options = options || {};
322
323 applyInvalidatedModules();
324
325 var results = currentUpdateApplyHandlers.map(function (handler) {
326 return handler(options);
327 });
328 currentUpdateApplyHandlers = undefined;
329
330 var errors = results
331 .map(function (r) {
332 return r.error;
333 })
334 .filter(Boolean);
335
336 if (errors.length > 0) {
337 return setStatus("abort").then(function () {
338 throw errors[0];
339 });
340 }
341
342 // Now in "dispose" phase
343 var disposePromise = setStatus("dispose");
344
345 results.forEach(function (result) {
346 if (result.dispose) result.dispose();
347 });
348
349 // Now in "apply" phase
350 var applyPromise = setStatus("apply");
351
352 var error;
353 var reportError = function (err) {
354 if (!error) error = err;
355 };
356
357 var outdatedModules = [];
358
359 var onAccepted = function () {
360 return Promise.all([disposePromise, applyPromise]).then(function () {
361 // handle errors in accept handlers and self accepted module load
362 if (error) {
363 return setStatus("fail").then(function () {
364 throw error;
365 });
366 }
367
368 if (queuedInvalidatedModules) {
369 return internalApply(options).then(function (list) {
370 outdatedModules.forEach(function (moduleId) {
371 if (list.indexOf(moduleId) < 0) list.push(moduleId);
372 });
373 return list;
374 });
375 }
376
377 return setStatus("idle").then(function () {
378 return outdatedModules;
379 });
380 });
381 };
382
383 return Promise.all(
384 results
385 .filter(function (result) {
386 return result.apply;
387 })
388 .map(function (result) {
389 return result.apply(reportError);
390 })
391 )
392 .then(function (applyResults) {
393 applyResults.forEach(function (modules) {
394 if (modules) {
395 for (var i = 0; i < modules.length; i++) {
396 outdatedModules.push(modules[i]);
397 }
398 }
399 });
400 })
401 .then(onAccepted);
402 }
403
404 function applyInvalidatedModules() {
405 if (queuedInvalidatedModules) {
406 if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = [];
407 Object.keys($hmrInvalidateModuleHandlers$).forEach(function (key) {
408 queuedInvalidatedModules.forEach(function (moduleId) {
409 $hmrInvalidateModuleHandlers$[key](
410 moduleId,
411 currentUpdateApplyHandlers
412 );
413 });
414 });
415 queuedInvalidatedModules = undefined;
416 return true;
417 }
418 }
419};
Note: See TracBrowser for help on using the repository browser.