/* 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"); class ModuleWarning extends WebpackError { /** * @param {Error} warning error thrown * @param {{from?: string|null}} info additional info */ constructor(warning, { from = null } = {}) { let message = "Module Warning"; if (from) { message += ` (from ${from}):\n`; } else { message += ": "; } if (warning && typeof warning === "object" && warning.message) { message += warning.message; } else if (warning) { message += String(warning); } super(message); this.name = "ModuleWarning"; this.warning = warning; this.details = warning && typeof warning === "object" && warning.stack ? cleanUp(warning.stack, this.message) : undefined; } serialize(context) { const { write } = context; write(this.warning); super.serialize(context); } deserialize(context) { const { read } = context; this.warning = read(); super.deserialize(context); } } makeSerializable(ModuleWarning, "webpack/lib/ModuleWarning"); module.exports = ModuleWarning;