mercury/frontend/src/lib/api/fetch.ts
2023-09-15 16:33:25 +02:00

33 lines
675 B
TypeScript

import axios from "axios";
import type { Error } from "./entities/error";
export async function apiFetch<T>(
path: string,
data:
| {
method?: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
data?: any;
token?: string;
headers?: Record<string, string>;
version?: number;
}
| undefined = undefined,
) {
try {
const resp = await axios<T>({
method: data?.method || "GET",
url: `/api/v${data?.version || 1}${path}`,
data: data,
});
return resp.data;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (err: any) {
if (err.response) {
throw err as Error;
}
throw err;
}
}