diff options
Diffstat (limited to 'node_modules/webpack/lib/ModuleError.js')
| -rw-r--r-- | node_modules/webpack/lib/ModuleError.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/ModuleError.js b/node_modules/webpack/lib/ModuleError.js new file mode 100644 index 00000000..6f2a5e00 --- /dev/null +++ b/node_modules/webpack/lib/ModuleError.js @@ -0,0 +1,70 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ + +"use strict"; + +const { cleanUp } = require("./ErrorHelpers"); +const WebpackError = require("./WebpackError"); +const makeSerializable = require("./util/makeSerializable"); + +/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + +class ModuleError extends WebpackError { + /** + * @param {Error} err error thrown + * @param {{from?: string|null}} info additional info + */ + constructor(err, { from = null } = {}) { + let message = "Module Error"; + + if (from) { + message += ` (from ${from}):\n`; + } else { + message += ": "; + } + + if (err && typeof err === "object" && err.message) { + message += err.message; + } else if (err) { + message += err; + } + + super(message); + + this.name = "ModuleError"; + this.error = err; + this.details = + err && typeof err === "object" && err.stack + ? cleanUp(err.stack, this.message) + : undefined; + } + + /** + * @param {ObjectSerializerContext} context context + */ + serialize(context) { + const { write } = context; + + write(this.error); + + super.serialize(context); + } + + /** + * @param {ObjectDeserializerContext} context context + */ + deserialize(context) { + const { read } = context; + + this.error = read(); + + super.deserialize(context); + } +} + +makeSerializable(ModuleError, "webpack/lib/ModuleError"); + +module.exports = ModuleError; |
