UNPKG

http-summoner

Version:
89 lines (88 loc) 2.29 kB
export declare enum REQUEST_METHODS { GET = "GET", POST = "POST", PATCH = "PATCH", DELETE = "DELETE" } export interface AnyObject { [name: string]: string; } export interface InitialConfig { baseUrl: string; headers: AnyObject; timeout: number; lsHeaders: string[]; } export interface HttpSummonerCreateProps { baseUrl: string; headers?: AnyObject; timeout?: number; lsHeaders: string[]; } export interface RequestConfig { method: REQUEST_METHODS; url?: string; headers?: AnyObject; query?: AnyObject; timeout?: number; body?: AnyObject; } export interface FinalConfig { method: REQUEST_METHODS; url: string; headers: AnyObject; timeout: number; body: AnyObject; } export interface GetRequestConfig { headers?: AnyObject; query?: AnyObject; timeout?: number; } export interface PostRequestConfig extends GetRequestConfig { body?: AnyObject; } export interface PatchRequestConfig extends PostRequestConfig { } export interface DeleteRequestConfig extends GetRequestConfig { } export interface GetRequest { (url: string): void; (url: string, config: GetRequestConfig): void; } export interface PostRequest { (url: string): void; (url: string, config: PostRequestConfig): void; } export interface PatchRequest { (url: string): void; (url: string, config: PatchRequestConfig): void; } export interface DeleteRequest { (url: string): void; (url: string, config: DeleteRequestConfig): void; } export interface SuccessResponse<T> { ok: boolean; status: number; statusText: string; headers: object | string; data: T; } export interface ErrorResponse<U> extends SuccessResponse<U> { message: string; } export interface BeforeInterceptor { (finalConfig: FinalConfig): void; } export interface AfterInterceptor { (requestResult: SuccessResponse<any>): void; } export interface IHttpSummoner { setBeforeRequestInterceptor: (interceptor: BeforeInterceptor) => void; setAfterRequestInterceptor: (interceptor: AfterInterceptor) => void; get: GetRequest; post: PostRequest; patch: PatchRequest; delete: DeleteRequest; }