happyDeliver/web/src/lib/hey-api.ts
2025-10-20 15:02:14 +07:00

30 lines
829 B
TypeScript

import type { CreateClientConfig } from "./api/client.gen";
export class NotAuthorizedError extends Error {
constructor(message: string) {
super(message);
this.name = "NotAuthorizedError";
}
}
async function customFetch(url: string, init: RequestInit): Promise<Response> {
const response = await fetch(url, init);
if (response.status === 400) {
const json = await response.json();
if (
json.error ==
"error in openapi3filter.SecurityRequirementsError: security requirements failed: invalid session"
) {
throw new NotAuthorizedError(json.error.substring(80));
}
}
return response;
}
export const createClientConfig: CreateClientConfig = (config) => ({
...config,
baseUrl: "/api/",
fetch: customFetch,
});