|
|
|
|
|
by dimaaan
1191 days ago
|
|
Similar trick for JSON-based web API's that returns either error message or result async fetchApi<TResult = void>(request: Request): Promise<TResult> {
type SuccessfulApiResponse = { Succeeded: true; Result: TResult }
type FailedApiResponse = { Succeeded: false; Error: string | null | undefined }
type ApiResponse = SuccessfulApiResponse | FailedApiResponse;
const response = await fetch(request);
ensureStatusOK(response);
const result = await response.json() as ApiResponse
if (!result.Succeeded) throw new Error(result.Error || 'Unknown API error');
return result.Result
}
|
|