UNPKG

@js-smart/react-kit

Version:
59 lines (58 loc) 2.1 kB
import { FetchError, FetchResponse, RequestConfig } from './FetchClientTypes'; /** * Reusable fetch client class * * @author Pavan Kumar Jadda * @since 0.2.19 */ declare class FetchInstance { private readonly baseURL; private requestInterceptors; private responseInterceptors; private errorInterceptors; /** * Add request interceptor */ interceptors: { request: { use: (interceptor: (config: RequestConfig) => RequestConfig | Promise<RequestConfig>) => void; }; response: { use: (successInterceptor?: (response: FetchResponse<unknown>) => FetchResponse<unknown> | Promise<FetchResponse<unknown>>, errorInterceptor?: (error: FetchError) => FetchError | Promise<FetchError> | void | Promise<void>) => void; }; }; constructor(baseURL?: string); /** * GET request */ get<T = unknown>(url: string, config?: Omit<RequestConfig, "method" | "url">): Promise<FetchResponse<T>>; /** * POST request */ post<T = unknown>(url: string, data?: unknown, config?: Omit<RequestConfig, "method" | "url" | "body">): Promise<FetchResponse<T>>; /** * PUT request */ put<T = unknown>(url: string, data?: unknown, config?: Omit<RequestConfig, "method" | "url" | "body">): Promise<FetchResponse<T>>; /** * DELETE request */ delete<T = unknown>(url: string, config?: Omit<RequestConfig, "method" | "url">): Promise<FetchResponse<T>>; /** * PATCH request */ patch<T = unknown>(url: string, data?: unknown, config?: Omit<RequestConfig, "method" | "url" | "body">): Promise<FetchResponse<T>>; /** * Generic request method */ request<T = unknown>(config: RequestConfig): Promise<FetchResponse<T>>; /** * Execute request with interceptors */ private executeRequest; } /** * Callable fetch client that defaults to GET requests */ export declare const FetchClient: (<T = unknown>(url: string, config?: Omit<RequestConfig, "method" | "url">) => Promise<T>) & FetchInstance; export default FetchClient;