UNPKG

@nu-art/thunder

Version:

Thunder - React & Typescript based frontend framework

38 lines (37 loc) 2.62 kB
import { ApiTypeBinder, DeriveBodyType, DeriveQueryType, DeriveResponseType, DeriveUrlType, ErrorResponse, HttpMethod, Module, QueryParams } from "@nu-art/ts-common"; import { HttpRequest } from "./http-request"; declare type HttpConfig = { origin: string; timeout: number; }; export interface OnRequestListener { onRequestCompleted: (key: string, success: boolean, requestData?: string) => void; } export declare const ErrorHandler_Toast: RequestCompletionHandler; export declare const SuccessHandler_Toast: RequestCompletionHandler; export declare type RequestCompletionHandler = (key: string, message: string) => void; export declare type RequestErrorHandler<E extends void | object> = (resError: ErrorResponse<E>, xhr: XMLHttpRequest, requestKey: string, errorMessage?: string, requestData?: string) => void; export declare type RequestSuccessHandler = (requestKey: string, successMessage?: string, requestData?: string) => void; export declare class HttpModule_Class extends Module<HttpConfig> { private dispatch_onRequestCompleted; private errorHandlers; private successHandlers; private origin; private timeout; private responseHandler?; private defaultHeaders; constructor(); addDefaultHeader(key: string, header: () => string | string[]): void; init(): void; protected validate(): void; createRequest: <Binder extends ApiTypeBinder<U, R, B, P, any> = ApiTypeBinder<void, void, void, {}, any>, U extends string = DeriveUrlType<Binder>, R = DeriveResponseType<Binder>, B = DeriveBodyType<Binder>, P extends QueryParams = DeriveQueryType<Binder>>(method: HttpMethod, key: string, data?: string | undefined) => HttpRequest<DeriveRealBinder<Binder>, DeriveUrlType<DeriveRealBinder<Binder>>, DeriveResponseType<DeriveRealBinder<Binder>>, DeriveBodyType<DeriveRealBinder<Binder>>, DeriveQueryType<DeriveRealBinder<Binder>>, import("@nu-art/ts-common").DeriveErrorType<DeriveRealBinder<Binder>>>; processDefaultResponseHandlers: (httpRequest: HttpRequest<any, any, any, any, any, any>) => boolean | undefined; addResponseHandler(responseHandler: (request: HttpRequest<any>) => boolean): void; setErrorHandlers(errorHandlers: RequestCompletionHandler[]): void; setSuccessHandlers(successHandlers: RequestCompletionHandler[]): void; handleRequestFailure: RequestErrorHandler<any>; handleRequestSuccess: RequestSuccessHandler; } export declare type DeriveRealBinder<Binder> = Binder extends ApiTypeBinder<infer U, infer R, infer B, infer P> ? ApiTypeBinder<U, R, B, P> : void; export declare const HttpModule: HttpModule_Class; export {};