is-error.js 1.0 KB

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = isError;
  6. exports.getProperError = getProperError;
  7. var _isPlainObject = require("../shared/lib/is-plain-object");
  8. function isError(err) {
  9. return typeof err === "object" && err !== null && "name" in err && "message" in err;
  10. }
  11. function getProperError(err) {
  12. if (isError(err)) {
  13. return err;
  14. }
  15. if (process.env.NODE_ENV === "development") {
  16. // provide better error for case where `throw undefined`
  17. // is called in development
  18. if (typeof err === "undefined") {
  19. return new Error("An undefined error was thrown, " + "see here for more info: https://nextjs.org/docs/messages/threw-undefined");
  20. }
  21. if (err === null) {
  22. return new Error("A null error was thrown, " + "see here for more info: https://nextjs.org/docs/messages/threw-undefined");
  23. }
  24. }
  25. return new Error((0, _isPlainObject).isPlainObject(err) ? JSON.stringify(err) : err + "");
  26. }
  27. //# sourceMappingURL=is-error.js.map