@kubb/plugin-client
Version:
API client generator plugin for Kubb, creating type-safe HTTP clients (Axios, Fetch) from OpenAPI specifications for making API requests.
38 lines (35 loc) • 1.43 kB
text/typescript
import * as axios from 'axios';
import { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
/**
* Subset of AxiosRequestConfig
*/
type RequestConfig<TData = unknown> = {
baseURL?: string;
url?: string;
method?: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD';
params?: unknown;
data?: TData | FormData;
responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
signal?: AbortSignal;
validateStatus?: (status: number) => boolean;
headers?: AxiosRequestConfig['headers'];
};
/**
* Subset of AxiosResponse
*/
type ResponseConfig<TData = unknown> = {
data: TData;
status: number;
statusText: string;
headers: AxiosResponse['headers'];
};
type ResponseErrorConfig<TError = unknown> = AxiosError<TError>;
declare const getConfig: () => Partial<RequestConfig<unknown>>;
declare const setConfig: (config: RequestConfig) => Partial<RequestConfig<unknown>>;
declare const axiosInstance: axios.AxiosInstance;
declare const client: {
<TData, TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>): Promise<ResponseConfig<TData>>;
getConfig: () => Partial<RequestConfig<unknown>>;
setConfig: (config: RequestConfig) => Partial<RequestConfig<unknown>>;
};
export { type RequestConfig, type ResponseConfig, type ResponseErrorConfig, axiosInstance, client, client as default, getConfig, setConfig };