@intuitionrobotics/thunderstorm
Version:
32 lines (31 loc) • 1.78 kB
TypeScript
import { ApiTypeBinder, HttpMethod, QueryParams } from "./types";
import { Module } from "@intuitionrobotics/ts-common";
import { RequestErrorHandler, RequestSuccessHandler, ResponseHandler } from "./request-types";
import { BaseHttpRequest } from "./BaseHttpRequest";
export type HttpConfig = {
origin?: string;
timeout?: number;
compress?: boolean;
};
export declare abstract class BaseHttpModule_Class<Config extends HttpConfig = HttpConfig> extends Module<Config> {
private defaultErrorHandlers;
private defaultSuccessHandlers;
protected origin?: string;
protected timeout: number;
private readonly defaultResponseHandler;
protected readonly defaultHeaders: {
[s: string]: (() => string | string[]) | string | string[];
};
constructor(name: string);
init(): void;
shouldCompress(): boolean | undefined;
addDefaultHeader(key: string, header: (() => string | string[]) | string | string[]): void;
abstract createRequest<Binder extends ApiTypeBinder<U, R, B, P, E>, U extends string = Binder["url"], R = Binder["response"], B = Binder["body"], P extends QueryParams = Binder["queryParams"], E extends void | object = Binder["error"]>(method: HttpMethod, key: string, data?: string): BaseHttpRequest<Binder>;
processDefaultResponseHandlers: (httpRequest: BaseHttpRequest<any>) => boolean;
addDefaultResponseHandler(defaultResponseHandler: ResponseHandler): void;
removeDefaultResponseHandler(defaultResponseHandler: ResponseHandler): void;
setErrorHandlers(defaultErrorHandlers: RequestErrorHandler<any>[]): void;
setSuccessHandlers(defaultErrorHandlers: RequestSuccessHandler[]): void;
handleRequestFailure: RequestErrorHandler<any>;
handleRequestSuccess: RequestSuccessHandler;
}