mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
4167a60588
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome to the frontend as well. ![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65) Added a few `biome-ignore` to speed up the process but we may want to check and fix them in the future.
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { formatApiPath } from 'utils/formatPath';
|
|
|
|
/**
|
|
* Customize HTTP client, use Fetch instead of Axios
|
|
* @see https://orval.dev/guides/custom-client
|
|
*/
|
|
export const fetcher = async <T>({
|
|
url,
|
|
method,
|
|
params,
|
|
data,
|
|
headers,
|
|
credentials = 'include',
|
|
}: {
|
|
url: string;
|
|
method: 'get' | 'post' | 'put' | 'delete' | 'patch';
|
|
params?: string | URLSearchParams | Record<string, string> | string[][];
|
|
data?: BodyType<unknown>;
|
|
headers?: HeadersInit;
|
|
credentials?: RequestCredentials;
|
|
}): Promise<T> => {
|
|
const response = await fetch(
|
|
`${formatApiPath(url)}${new URLSearchParams(params)}`,
|
|
{
|
|
method,
|
|
credentials,
|
|
headers: {
|
|
Accept: 'application/json',
|
|
'Content-Type': 'application/json',
|
|
...headers,
|
|
},
|
|
...(data ? { body: JSON.stringify(data) } : {}),
|
|
},
|
|
);
|
|
|
|
return response.json();
|
|
};
|
|
|
|
export default fetcher;
|
|
|
|
/**
|
|
* In some case with react-query and swr you want to be able to override the return error type so you can also do it here like this
|
|
*/
|
|
export type ErrorType<Error> = Error;
|
|
|
|
/**
|
|
* In case you want to wrap the body type (optional)
|
|
* (if the custom instance is processing data before sending it, like changing the case for example)
|
|
*/
|
|
export type BodyType<BodyData> = BodyData;
|