ModuleStoreError.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. MIT License http://www.opensource.org/licenses/mit-license.php
  3. Author Tobias Koppers @sokra
  4. */
  5. "use strict";
  6. const WebpackError = require("./WebpackError");
  7. /** @typedef {import("./Module")} Module */
  8. class ModuleStoreError extends WebpackError {
  9. /**
  10. * Creates an instance of ModuleStoreError.
  11. * @param {Module} module module tied to dependency
  12. * @param {string | Error} err error thrown
  13. */
  14. constructor(module, err) {
  15. let message = "Module storing failed: ";
  16. /** @type {string | undefined} */
  17. const details = undefined;
  18. if (err !== null && typeof err === "object") {
  19. if (typeof err.stack === "string" && err.stack) {
  20. const stack = err.stack;
  21. message += stack;
  22. } else if (typeof err.message === "string" && err.message) {
  23. message += err.message;
  24. } else {
  25. message += err;
  26. }
  27. } else {
  28. message += String(err);
  29. }
  30. super(message);
  31. /** @type {string} */
  32. this.name = "ModuleStoreError";
  33. this.details = /** @type {string | undefined} */ (details);
  34. this.module = module;
  35. this.error = err;
  36. }
  37. }
  38. /** @type {typeof ModuleStoreError} */
  39. module.exports = ModuleStoreError;