1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | "use strict";
|
7 |
|
8 | const { cutOffLoaderExecution } = require("./ErrorHelpers");
|
9 | const WebpackError = require("./WebpackError");
|
10 | const makeSerializable = require("./util/makeSerializable");
|
11 |
|
12 | class ModuleBuildError extends WebpackError {
|
13 | |
14 |
|
15 |
|
16 |
|
17 | constructor(err, { from = null } = {}) {
|
18 | let message = "Module build failed";
|
19 | let details = undefined;
|
20 |
|
21 | if (from) {
|
22 | message += ` (from ${from}):\n`;
|
23 | } else {
|
24 | message += ": ";
|
25 | }
|
26 |
|
27 | if (err !== null && typeof err === "object") {
|
28 | if (typeof err.stack === "string" && err.stack) {
|
29 | const stack = cutOffLoaderExecution(err.stack);
|
30 |
|
31 | if (!err.hideStack) {
|
32 | message += stack;
|
33 | } else {
|
34 | details = stack;
|
35 |
|
36 | if (typeof err.message === "string" && err.message) {
|
37 | message += err.message;
|
38 | } else {
|
39 | message += err;
|
40 | }
|
41 | }
|
42 | } else if (typeof err.message === "string" && err.message) {
|
43 | message += err.message;
|
44 | } else {
|
45 | message += String(err);
|
46 | }
|
47 | } else {
|
48 | message += String(err);
|
49 | }
|
50 |
|
51 | super(message);
|
52 |
|
53 | this.name = "ModuleBuildError";
|
54 | this.details = details;
|
55 | this.error = err;
|
56 | }
|
57 |
|
58 | serialize(context) {
|
59 | const { write } = context;
|
60 |
|
61 | write(this.error);
|
62 |
|
63 | super.serialize(context);
|
64 | }
|
65 |
|
66 | deserialize(context) {
|
67 | const { read } = context;
|
68 |
|
69 | this.error = read();
|
70 |
|
71 | super.deserialize(context);
|
72 | }
|
73 | }
|
74 |
|
75 | makeSerializable(ModuleBuildError, "webpack/lib/ModuleBuildError");
|
76 |
|
77 | module.exports = ModuleBuildError;
|