mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 03:07:04 +02:00
24 lines
604 B
TypeScript
24 lines
604 B
TypeScript
export type BlitzResponse<Data extends object> =
|
|
| {
|
|
status: 'error';
|
|
error: { field: string; message: string; code: 402; value: null };
|
|
}
|
|
| {
|
|
status: 'ok';
|
|
data: Data;
|
|
};
|
|
|
|
export default async function fetchBlitz<Data extends object>(url: string) {
|
|
const data = (await fetch(url).then((response) =>
|
|
response.json(),
|
|
)) as BlitzResponse<Data>;
|
|
|
|
if (data.status === 'ok') {
|
|
return data.data;
|
|
} else {
|
|
throw new Error(`Wargaming response error status:"${data.status}"`, {
|
|
cause: `Message: "${data.error.message}"\nURL: "${url}"`,
|
|
});
|
|
}
|
|
}
|