UNPKG

react-http-fetch

Version:

An http library for React JS built on top of native JS fetch

43 lines (42 loc) 1.82 kB
import { HttpMethod } from '../enum'; import { HttpContext } from './http-context'; export interface UseHttpClientParams { baseUrl: string; } export declare type AbortableHttpRequestReturn<HttpResponseT> = [ res: Promise<HttpResponseT>, abort: AbortController ]; export interface PerformHttpRequestParams<HttpRequestBodyT, HttpResponseT> { relativeUrl: string; parser: HttpResponseParser<HttpResponseT>; baseUrlOverride: string; context: HttpContext; requestOptions: Partial<HttpRequestOptions<HttpRequestBodyT>>; } export declare type HttpClientRequest = <HttpResponseT, HttpRequestBodyT>(params: Partial<PerformHttpRequestParams<HttpRequestBodyT, HttpResponseT>>) => Promise<HttpResponseT>; export declare type HttpClientAbortableRequest = <HttpResponseT, HttpRequestBodyT>(params: Partial<PerformHttpRequestParams<HttpRequestBodyT, HttpResponseT>>) => AbortableHttpRequestReturn<HttpResponseT>; export interface UseHttpClientReturn { request: HttpClientRequest; get: HttpClientRequest; post: HttpClientRequest; put: HttpClientRequest; patch: HttpClientRequest; deleteReq: HttpClientRequest; abortableRequest: HttpClientAbortableRequest; abortableGet: HttpClientAbortableRequest; abortablePost: HttpClientAbortableRequest; abortablePatch: HttpClientAbortableRequest; abortablePut: HttpClientAbortableRequest; abortableDelete: HttpClientAbortableRequest; } export interface HttpRequestOptions<RequestBody> { body: RequestBody | null | undefined; credentials: RequestCredentials | undefined; headers?: HeadersInit; maxAge?: number; method: HttpMethod; queryParams?: Record<string, string>; signal?: AbortSignal; } export declare type HttpResponseParser<HttpResponse> = (response: Response) => Promise<HttpResponse>;