UNPKG

@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
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 };