UNPKG

react-box-tools

Version:

Box tools react components, utils and hooks

119 lines (95 loc) 4.84 kB
export declare type ConfigRequestInit = { headers?: RawRequestHeaders; timeout?: number; } & Omit<RequestInit, 'headers' | 'method'>; export declare type ConfigRequestNoBodyInit = {} & Omit<ConfigRequestInit, 'body'>; export declare const fetchApi: HttpFetchService; export declare type HeaderValue = string | string[] | number | boolean | null; export declare type HttpContentType = 'text/html' | 'text/plain' | 'multipart/form-data' | 'application/json' | 'application/x-www-form-urlencoded' | 'application/octet-stream'; export declare type HttpDataType = 'text' | 'blob' | 'arrayBuffer' | 'formData' | 'unknown'; export declare type HttpDataTypeMap = { text: string; blob: Blob; arrayBuffer: ArrayBuffer; formData: FormData; unknown: Response; }; export declare type HttpError = { baseUrl?: string; url: string; method: HttpMethod; code: HttpErrorType; message: string; }; export declare type HttpErrorClient = 400 | 401 | 403 | 404 | 405 | 413 | 'ERR_NETWORK'; export declare type HttpErrorMap = { [key in HttpErrorType]: string; }; export declare type HttpErrorServer = 500 | 502 | 503 | 504 | 'ERR_TIMEOUT'; export declare type HttpErrorType = HttpErrorClient | HttpErrorServer | 'ERR_UNKNOWN'; declare class HttpFetchService { private onReq; private onRes; interceptors: Interceptor; baseUrl?: string; private config; constructor(config?: HttpRequestInit); create(config?: HttpRequestInit): HttpFetchService; processError(error: HttpError, err?: any): void; request<T>(url: string, method: HttpMethod, config?: ConfigRequestInit | ConfigRequestNoBodyInit, dataType?: HttpDataType): Promise<HttpResponse<T>>; get<T extends HttpDataType>(url: string, config?: ConfigRequestNoBodyInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; get<T>(url: string, config?: ConfigRequestNoBodyInit): Promise<HttpResponse<T>>; post<T extends HttpDataType>(url: string, config?: ConfigRequestInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; post<T>(url: string, config?: ConfigRequestInit): Promise<HttpResponse<T>>; put<T extends HttpDataType>(url: string, config?: ConfigRequestInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; put<T>(url: string, config?: ConfigRequestInit): Promise<HttpResponse<T>>; delete<T extends HttpDataType>(url: string, config?: ConfigRequestNoBodyInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; delete<T>(url: string, config?: ConfigRequestNoBodyInit): Promise<HttpResponse<T>>; patch<T extends HttpDataType>(url: string, config?: ConfigRequestInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; patch<T>(url: string, config?: ConfigRequestInit): Promise<HttpResponse<T>>; head<T extends HttpDataType>(url: string, config?: ConfigRequestNoBodyInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; head<T>(url: string, config?: ConfigRequestNoBodyInit): Promise<HttpResponse<T>>; options<T extends HttpDataType>(url: string, config?: ConfigRequestNoBodyInit, dataType?: T): Promise<HttpResponse<HttpDataTypeMap[T]>>; options<T>(url: string, config?: ConfigRequestNoBodyInit): Promise<HttpResponse<T>>; cleanup(): void; } export declare type HttpMethod = 'get' | 'delete' | 'head' | 'options' | 'post' | 'put' | 'patch'; export declare type HttpRequestInit = { headers: RawRequestHeaders; timeout?: number; } & Omit<RequestInit, 'headers'>; export declare type HttpResponse<T = any> = { data: T; req: HttpRequestInit; res: HttpResponseInit; }; export declare type HttpResponseInit = { headers: RawResponseHeaders; status: number; statusText: string; redirected: boolean; ok: boolean; type: ResponseType; url: string; } & Omit<ResponseInit, 'headers'>; export declare type Interceptor = { onRequest(config: HttpRequestInit): HttpRequestInit | Promise<HttpRequestInit>; onResponse(response: HttpResponse<any>): void; onError?(error: HttpError): void; }; export declare type RawHeaders = { [key: string]: HeaderValue; }; export declare type RawRequestHeaders = Partial<RawHeaders & { [Key in RequestHeadersList]: HeaderValue; } & { 'Content-Type': HttpContentType; }>; export declare type RawResponseHeaders = Partial<{ [Key in ResponseHeadersList]: HeaderValue; } & { 'set-cookie': string[]; }>; export declare type RequestHeadersList = 'Accept' | 'Accept-Language' | 'Content-Length' | 'User-Agent' | 'Content-Encoding' | 'Authorization'; export declare type ResponseHeadersList = 'Server' | 'Content-Type' | 'Content-Length' | 'Cache-Control' | 'Content-Encoding'; export { }