react-http-fetch
Version:
An http library for React JS built on top of native JS fetch
29 lines (28 loc) • 1.31 kB
TypeScript
import { HttpCacheService, HttpCacheStore } from '../cache';
import { ReactElement } from 'react';
import { HttpRequestOptions, HttpResponseParser } from '../client';
export declare type ReqBodySerializerReturn = BodyInit | null;
export declare type HttpRequestBodySerializer = (body: unknown) => ReqBodySerializerReturn;
export interface HttpClientConfig<HttpRequestBodyT, HttpResponseT> {
reqOptions: Partial<HttpRequestOptions<HttpRequestBodyT>>;
baseUrl: string;
responseParser: HttpResponseParser<HttpResponseT>;
requestBodySerializer: HttpRequestBodySerializer;
cache: HttpCacheService;
}
export interface HttpClientContextProps<HttpRequestBodyT, HttpResponseT> {
config: HttpClientConfig<HttpRequestBodyT, HttpResponseT>;
}
export interface HttpClientProviderConfig<HttpRequestBodyT, HttpResponseT> {
reqOptions: Partial<HttpRequestOptions<HttpRequestBodyT>>;
baseUrl: string;
responseParser: HttpResponseParser<HttpResponseT>;
requestBodySerializer: HttpRequestBodySerializer;
cacheStore: HttpCacheStore;
cacheStorePrefix: string;
cacheStoreSeparator: string;
}
export interface HttpClientProviderProps<HttpRequestBodyT, HttpResponseT> {
children: ReactElement;
config: Partial<HttpClientProviderConfig<HttpRequestBodyT, HttpResponseT>>;
}