Skip to content

Commit a457128

Browse files
authored
refactor: consolidate ModuleError and ModuleWarning classes (#11935)
1 parent 1b06dba commit a457128

File tree

3 files changed

+34
-52
lines changed

3 files changed

+34
-52
lines changed
Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,45 @@
11
import { cleanUp } from "../ErrorHelpers";
22
import WebpackError from "../lib/WebpackError";
33

4-
export default class ModuleError extends WebpackError {
5-
error?: Error;
4+
const createMessage = (
5+
err: Error,
6+
type: "Error" | "Warning",
7+
from?: string
8+
) => {
9+
let message = `Module ${type}${from ? ` (from ${from}):\n` : ": "}`;
610

7-
constructor(err: Error, { from }: { from?: string } = {}) {
8-
let message = "Module Error";
11+
if (err && typeof err === "object" && err.message) {
12+
message += err.message;
13+
} else if (err) {
14+
message += err;
15+
}
916

10-
if (from) {
11-
message += ` (from ${from}):\n`;
12-
} else {
13-
message += ": ";
14-
}
17+
return message;
18+
};
1519

16-
if (err && typeof err === "object" && err.message) {
17-
message += err.message;
18-
} else if (err) {
19-
message += err;
20-
}
20+
const getErrorDetails = (err: Error) =>
21+
err && typeof err === "object" && err.stack
22+
? cleanUp(err.stack, err.name, err.message)
23+
: undefined;
2124

22-
super(message);
25+
export class ModuleError extends WebpackError {
26+
error?: Error;
2327

28+
constructor(err: Error, { from }: { from?: string } = {}) {
29+
super(createMessage(err, "Error", from));
2430
this.name = "ModuleError";
2531
this.error = err;
26-
this.details =
27-
err && typeof err === "object" && err.stack
28-
? cleanUp(err.stack, err.name, err.message)
29-
: undefined;
32+
this.details = getErrorDetails(err);
33+
}
34+
}
35+
36+
export class ModuleWarning extends WebpackError {
37+
error?: Error;
38+
39+
constructor(err: Error, { from }: { from?: string } = {}) {
40+
super(createMessage(err, "Warning", from));
41+
this.name = "ModuleWarning";
42+
this.error = err;
43+
this.details = getErrorDetails(err);
3044
}
3145
}

packages/rspack/src/loader-runner/ModuleWarning.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

packages/rspack/src/loader-runner/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ import {
5050
parseResourceWithoutFragment
5151
} from "../util/identifier";
5252
import { memoize } from "../util/memoize";
53-
import ModuleError from "./ModuleError";
54-
import ModuleWarning from "./ModuleWarning";
53+
import { ModuleError, ModuleWarning } from "./ModuleError";
5554
import * as pool from "./service";
5655
import { type HandleIncomingRequest, RequestType } from "./service";
5756
import {

0 commit comments

Comments
 (0)