Align API error envelopes
This commit is contained in:
@@ -19,9 +19,10 @@ export class ApiHttpError extends Error {
|
||||
async function parseResponse<T>(response: Response): Promise<T> {
|
||||
const payload = await response.json().catch(() => ({}));
|
||||
if (!response.ok) {
|
||||
const code = payload?.error?.code ?? "REQUEST_ERROR";
|
||||
const message = payload?.error?.message ?? `Request failed (${response.status})`;
|
||||
const details = payload?.error?.details;
|
||||
const legacyError = typeof payload?.error === "object" && payload?.error !== null ? payload.error : null;
|
||||
const code = typeof payload?.error === "string" ? payload.error : legacyError?.code ?? "REQUEST_ERROR";
|
||||
const message = payload?.message ?? legacyError?.message ?? `Request failed (${response.status})`;
|
||||
const details = payload?.details ?? legacyError?.details;
|
||||
throw new ApiHttpError(message, code, details);
|
||||
}
|
||||
return payload.data as T;
|
||||
|
||||
Reference in New Issue
Block a user