| 88 | * Returns undefined for non-HTTP errors (e.g. network failures). |
| 89 | */ |
| 90 | export function extractHttpStatus(err: unknown): number | undefined { |
| 91 | if ( |
| 92 | err && |
| 93 | typeof err === 'object' && |
| 94 | 'response' in err && |
| 95 | (err as { response?: { status?: unknown } }).response && |
| 96 | typeof (err as { response: { status?: unknown } }).response.status === |
| 97 | 'number' |
| 98 | ) { |
| 99 | return (err as { response: { status: number } }).response.status |
| 100 | } |
| 101 | return undefined |
| 102 | } |
| 103 | |
| 104 | /** |
| 105 | * Pull a human-readable message out of an API error response body. |