errors.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  3. Object.defineProperty(exports, "__esModule", { value: true });
  4. exports.castToError = void 0;
  5. exports.isAbortError = isAbortError;
  6. function isAbortError(err) {
  7. return (typeof err === 'object' &&
  8. err !== null &&
  9. // Spec-compliant fetch implementations
  10. (('name' in err && err.name === 'AbortError') ||
  11. // Expo fetch
  12. ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));
  13. }
  14. const castToError = (err) => {
  15. if (err instanceof Error)
  16. return err;
  17. if (typeof err === 'object' && err !== null) {
  18. try {
  19. if (Object.prototype.toString.call(err) === '[object Error]') {
  20. // @ts-ignore - not all envs have native support for cause yet
  21. const error = new Error(err.message, err.cause ? { cause: err.cause } : {});
  22. if (err.stack)
  23. error.stack = err.stack;
  24. // @ts-ignore - not all envs have native support for cause yet
  25. if (err.cause && !error.cause)
  26. error.cause = err.cause;
  27. if (err.name)
  28. error.name = err.name;
  29. return error;
  30. }
  31. }
  32. catch { }
  33. try {
  34. return new Error(JSON.stringify(err));
  35. }
  36. catch { }
  37. }
  38. return new Error(err);
  39. };
  40. exports.castToError = castToError;
  41. //# sourceMappingURL=errors.js.map