@js-smart/react-kit
Version:
59 lines (58 loc) • 2.1 kB
TypeScript
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;