MCPcopy
hub / github.com/webpack/webpack / handleNewWorker

Method handleNewWorker

lib/dependencies/WorkerPlugin.js:265–508  ·  view source on GitHub ↗
(expr, isGlobalWorker = false)

Source from the content-addressed store, hash-verified

263 * @returns {boolean | void} true when handled
264 */
265 const handleNewWorker = (expr, isGlobalWorker = false) => {
266 if (expr.arguments.length === 0 || expr.arguments.length > 2) {
267 return;
268 }
269 const [arg1, arg2] = expr.arguments;
270 if (arg1.type === "SpreadElement") return;
271 if (arg2 && arg2.type === "SpreadElement") return;
272
273 /** @type {string} */
274 let url;
275 /** @type {Range} */
276 let range;
277 /** @type {boolean} */
278 let needNewUrl = false;
279
280 if (arg1.type === "MemberExpression" && isMetaUrl(parser, arg1)) {
281 url = getUrl(parser.state.module);
282 range = [
283 /** @type {Range} */ (arg1.range)[0],
284 /** @type {Range} */ (arg1.range)[1]
285 ];
286 needNewUrl = true;
287 } else {
288 const parsedUrl = parseModuleUrl(parser, arg1);
289 if (!parsedUrl) return;
290 [url, range] = parsedUrl;
291 }
292
293 const {
294 expressions,
295 otherElements,
296 values: options,
297 spread: hasSpreadInOptions,
298 insertType,
299 insertLocation
300 } = arg2 && arg2.type === "ObjectExpression"
301 ? parseObjectExpression(parser, arg2)
302 : {
303 expressions:
304 /** @type {Record<string, Expression | Pattern>} */ ({}),
305 otherElements: [],
306 /** @type {Values} */
307 values: {},
308 spread: false,
309 insertType: arg2 ? "spread" : "argument",
310 insertLocation: arg2
311 ? /** @type {Range} */ (arg2.range)
312 : /** @type {Range} */ (arg1.range)[1]
313 };
314 const { options: importOptions, errors: commentErrors } =
315 parser.parseCommentOptions(/** @type {Range} */ (expr.range));
316
317 if (commentErrors) {
318 for (const e of commentErrors) {
319 const { comment } = e;
320 parser.state.module.addWarning(
321 new CommentCompilationWarning(
322 `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,

Callers

nothing calls this directly

Calls 15

isMetaUrlFunction · 0.85
createHashFunction · 0.85
sliceMethod · 0.80
walkExpressionMethod · 0.80
walkPropertyMethod · 0.80
getUrlFunction · 0.70
keysMethod · 0.65
addDependencyMethod · 0.65
parseCommentOptionsMethod · 0.45
addWarningMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected