api-wizard
Version:
A powerful TypeScript wrapper for native Fetch API with token management, interceptors, and type-safe HTTP requests
49 lines (48 loc) • 1.64 kB
TypeScript
import { FetchResponse, FetchRequestConfig, FetchClient } from './interface/Http';
interface AxiosCompatibleError extends Error {
response?: {
data: any;
status: number;
statusText: string;
headers: any;
};
request?: any;
config?: any;
status?: number;
_retry?: boolean;
}
export declare class FetchError extends Error implements AxiosCompatibleError {
response?: {
data: any;
status: number;
statusText: string;
headers: any;
};
request?: any;
config?: any;
status: number;
_retry?: boolean;
constructor(status: number, statusText: string, originalResponse: Response, url: string, data?: any, requestConfig?: any);
}
export declare class FetchClientImpl implements FetchClient {
private baseURL;
private defaultHeaders;
private defaultConfig;
constructor(config?: {
baseURL?: string;
headers?: HeadersInit;
requestConfig?: RequestInit;
});
private buildURL;
private mergeHeaders;
private transformResponse;
request<T>(config: FetchRequestConfig & {
url: string;
}): Promise<FetchResponse<T>>;
get<T>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
post<T>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
put<T>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
patch<T>(url: string, data?: any, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
delete<T>(url: string, config?: FetchRequestConfig): Promise<FetchResponse<T>>;
}
export {};