MCPcopy
hub / github.com/webpack/webpack / createModuleHotObject

Function createModuleHotObject

lib/hmr/HotModuleReplacement.runtime.js:203–309  ·  view source on GitHub ↗

* @param {ModuleId} moduleId module id * @param {HotModule} me the module * @returns {Hot} hot API

(moduleId, me)

Source from the content-addressed store, hash-verified

201 * @returns {Hot} hot API
202 */
203 function createModuleHotObject(moduleId, me) {
204 var _main = currentChildModule !== moduleId;
205 /** @type {Hot} */
206 var hot = {
207 // private stuff
208 _acceptedDependencies: {},
209 _acceptedErrorHandlers: {},
210 _declinedDependencies: {},
211 _selfAccepted: false,
212 _selfDeclined: false,
213 _selfInvalidated: false,
214 _disposeHandlers: [],
215 _main: _main,
216 _requireSelf: function () {
217 currentParents = me.parents.slice();
218 currentChildModule = _main ? undefined : moduleId;
219 __webpack_require__(moduleId);
220 },
221
222 // Module API
223 active: true,
224 accept: function (dep, callback, errorHandler) {
225 if (dep === undefined) hot._selfAccepted = true;
226 else if (typeof dep === "function") hot._selfAccepted = dep;
227 else if (typeof dep === "object" && dep !== null) {
228 for (var i = 0; i < dep.length; i++) {
229 hot._acceptedDependencies[dep[i]] = callback || function () {};
230 hot._acceptedErrorHandlers[dep[i]] = errorHandler;
231 }
232 } else {
233 hot._acceptedDependencies[dep] = callback || function () {};
234 hot._acceptedErrorHandlers[dep] = errorHandler;
235 }
236 },
237 decline: function (dep) {
238 if (dep === undefined) hot._selfDeclined = true;
239 else if (typeof dep === "object" && dep !== null)
240 for (var i = 0; i < dep.length; i++)
241 hot._declinedDependencies[dep[i]] = true;
242 else hot._declinedDependencies[dep] = true;
243 },
244 dispose: function (callback) {
245 hot._disposeHandlers.push(callback);
246 },
247 addDisposeHandler: function (callback) {
248 hot._disposeHandlers.push(callback);
249 },
250 removeDisposeHandler: function (callback) {
251 var idx = hot._disposeHandlers.indexOf(callback);
252 if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
253 },
254 invalidate: function () {
255 this._selfInvalidated = true;
256 switch (currentStatus) {
257 case "idle":
258 currentUpdateApplyHandlers = [];
259 Object.keys($hmrInvalidateModuleHandlers$).forEach(function (key) {
260 $hmrInvalidateModuleHandlers$[key](

Callers 1

Calls 6

setStatusFunction · 0.85
sliceMethod · 0.80
keysMethod · 0.65
__webpack_require__Function · 0.50
pushMethod · 0.45
forEachMethod · 0.45

Tested by

no test coverage detected