UNPKG

1.23 kBJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5"use strict";
6
7const WebpackError = require("./WebpackError");
8const { cutOffLoaderExecution } = require("./ErrorHelpers");
9
10class ModuleBuildError extends WebpackError {
11 constructor(module, err, { from = null } = {}) {
12 let message = "Module build failed";
13 let details = undefined;
14 if (from) {
15 message += ` (from ${from}):\n`;
16 } else {
17 message += ": ";
18 }
19 if (err !== null && typeof err === "object") {
20 if (typeof err.stack === "string" && err.stack) {
21 const stack = cutOffLoaderExecution(err.stack);
22 if (!err.hideStack) {
23 message += stack;
24 } else {
25 details = stack;
26 if (typeof err.message === "string" && err.message) {
27 message += err.message;
28 } else {
29 message += err;
30 }
31 }
32 } else if (typeof err.message === "string" && err.message) {
33 message += err.message;
34 } else {
35 message += err;
36 }
37 } else {
38 message = err;
39 }
40
41 super(message);
42
43 this.name = "ModuleBuildError";
44 this.details = details;
45 this.module = module;
46 this.error = err;
47
48 Error.captureStackTrace(this, this.constructor);
49 }
50}
51
52module.exports = ModuleBuildError;