MCPcopy
hub / github.com/webpack/webpack / createRequire

Function createRequire

lib/hmr/HotModuleReplacement.runtime.js:139–196  ·  view source on GitHub ↗

* @param {WebpackRequire} require the original require function * @param {ModuleId} moduleId module id * @returns {WebpackRequire} hot-aware require function

(require, moduleId)

Source from the content-addressed store, hash-verified

137 * @returns {WebpackRequire} hot-aware require function
138 */
139 function createRequire(require, moduleId) {
140 var me = installedModules[moduleId];
141 if (!me) return require;
142 /**
143 * @param {ModuleId} request requested module id
144 * @returns {unknown} module exports
145 */
146 var fn = function (request) {
147 if (me.hot.active) {
148 if (installedModules[request]) {
149 var parents = installedModules[request].parents;
150 if (parents.indexOf(moduleId) === -1) {
151 parents.push(moduleId);
152 }
153 } else {
154 currentParents = [moduleId];
155 currentChildModule = request;
156 }
157 if (me.children.indexOf(request) === -1) {
158 me.children.push(request);
159 }
160 } else {
161 console.warn(
162 "[HMR] unexpected require(" +
163 request +
164 ") from disposed module " +
165 moduleId
166 );
167 currentParents = [];
168 }
169 return require(request);
170 };
171 /**
172 * @param {string} name property name
173 * @returns {PropertyDescriptor} descriptor forwarding to require
174 */
175 var createPropertyDescriptor = function (name) {
176 return {
177 configurable: true,
178 enumerable: true,
179 get: function () {
180 return require[name];
181 },
182 set: function (value) {
183 require[name] = value;
184 }
185 };
186 };
187 for (var name in require) {
188 if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") {
189 Object.defineProperty(fn, name, createPropertyDescriptor(name));
190 }
191 }
192 /** @type {WebpackRequire} */ (fn).e = function (chunkId, fetchPriority) {
193 return trackBlockingPromise(require.e(chunkId, fetchPriority));
194 };
195 return /** @type {WebpackRequire} */ (fn);
196 }

Callers 1

Calls 3

createPropertyDescriptorFunction · 0.85
trackBlockingPromiseFunction · 0.85
callMethod · 0.45

Tested by

no test coverage detected