API Client: Add client-level error handler (#102091)
* API Client: Add client-level error handler * Return fetch error * Simplify error object
This commit is contained in:
@@ -8,7 +8,11 @@ interface RequestOptions extends BackendSrvRequest {
|
|||||||
body?: BackendSrvRequest['data'];
|
body?: BackendSrvRequest['data'];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createBaseQuery({ baseURL }: { baseURL: string }): BaseQueryFn<RequestOptions> {
|
interface CreateBaseQueryOptions {
|
||||||
|
baseURL: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createBaseQuery({ baseURL }: CreateBaseQueryOptions): BaseQueryFn<RequestOptions> {
|
||||||
async function backendSrvBaseQuery(requestOptions: RequestOptions) {
|
async function backendSrvBaseQuery(requestOptions: RequestOptions) {
|
||||||
try {
|
try {
|
||||||
const { data: responseData, ...meta } = await lastValueFrom(
|
const { data: responseData, ...meta } = await lastValueFrom(
|
||||||
@@ -33,9 +37,7 @@ export function createBaseQuery({ baseURL }: { baseURL: string }): BaseQueryFn<R
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function handleRequestError(error: unknown) {
|
export function handleRequestError(error: unknown) {
|
||||||
if (isFetchError(error)) {
|
if (isFetchError(error) || error instanceof Error) {
|
||||||
return { error: new Error(error.data.message) };
|
|
||||||
} else if (error instanceof Error) {
|
|
||||||
return { error };
|
return { error };
|
||||||
} else {
|
} else {
|
||||||
return { error: new Error('Unknown error') };
|
return { error: new Error('Unknown error') };
|
||||||
|
|||||||
Reference in New Issue
Block a user