cloudflare/cloudflare-typescript

Public

mirrored from https://github.com/cloudflare/cloudflare-typescriptAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
cbd18e5b426c5abe0a1e3e1ad6d0da11eb2e5439

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/internal/errors.ts

33lines · modecode

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