You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.3 KiB

2 years ago
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Jarid Margolin @jaridmargolin
*/
"use strict";
const inspect = require("util").inspect.custom;
const makeSerializable = require("./util/makeSerializable");
/** @typedef {import("./Chunk")} Chunk */
/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("./Module")} Module */
class WebpackError extends Error {
/**
* Creates an instance of WebpackError.
* @param {string=} message error message
*/
constructor(message) {
super(message);
this.details = undefined;
/** @type {Module} */
this.module = undefined;
/** @type {DependencyLocation} */
this.loc = undefined;
/** @type {boolean} */
this.hideStack = undefined;
/** @type {Chunk} */
this.chunk = undefined;
/** @type {string} */
this.file = undefined;
}
[inspect]() {
return this.stack + (this.details ? `\n${this.details}` : "");
}
serialize({ write }) {
write(this.name);
write(this.message);
write(this.stack);
write(this.details);
write(this.loc);
write(this.hideStack);
}
deserialize({ read }) {
this.name = read();
this.message = read();
this.stack = read();
this.details = read();
this.loc = read();
this.hideStack = read();
}
}
makeSerializable(WebpackError, "webpack/lib/WebpackError");
module.exports = WebpackError;