errors.mjs 1.3 KB

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