react-box-tools
Version:
Box tools react components, utils and hooks
119 lines (95 loc) • 4.84 kB
TypeScript
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 { }