UNPKG

1.66 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = runAsChild;
7
8var _utils = require("./utils");
9
10function runAsChild(loaderContext, workerContext, options, callback) {
11 workerContext.compiler.runAsChild((error, entries, compilation) => {
12 if (error) {
13 return callback(error);
14 }
15
16 if (entries[0]) {
17 // eslint-disable-next-line no-param-reassign, prefer-destructuring
18 const workerFilename = entries[0].files[0];
19 let workerSource = compilation.assets[workerFilename].source();
20
21 if (options.inline === "no-fallback") {
22 // eslint-disable-next-line no-underscore-dangle, no-param-reassign
23 delete loaderContext._compilation.assets[workerFilename]; // TODO improve it, we should store generated source maps files for file in `assetInfo`
24 // eslint-disable-next-line no-underscore-dangle
25
26 if (loaderContext._compilation.assets[`${workerFilename}.map`]) {
27 // eslint-disable-next-line no-underscore-dangle, no-param-reassign
28 delete loaderContext._compilation.assets[`${workerFilename}.map`];
29 } // Remove `/* sourceMappingURL=url */` comment
30
31
32 workerSource = workerSource.replace(_utils.sourceMappingURLRegex, ""); // Remove `//# sourceURL=webpack-internal` comment
33
34 workerSource = workerSource.replace(_utils.sourceURLWebpackRegex, "");
35 }
36
37 const workerCode = (0, _utils.workerGenerator)(loaderContext, workerFilename, workerSource, options);
38 return callback(null, workerCode);
39 }
40
41 return callback(new Error(`Failed to compile web worker "${workerContext.request}" request`));
42 });
43}
\No newline at end of file