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