@ne1410s/http
Version:
Lightweight ES5 script to provide http utilities
30 lines (29 loc) • 1.09 kB
TypeScript
import { OperationBase } from './base';
import { Ctor } from '@ne1410s/codl';
export declare type Verb = 'get' | 'head' | 'post' | 'put' | 'patch' | 'delete';
export declare type BodylessVerb = 'get' | 'head';
export declare abstract class HttpOperation<TRequest, TResponse> extends OperationBase<TRequest, TResponse> {
readonly verb: Verb;
readonly headers: Headers;
protected _url: string;
get url(): string;
constructor(url: string, verb?: Verb, headers?: HeadersInit, requestType?: Ctor<TRequest>, responseType?: Ctor<TResponse>);
/**
*
* @param requestData Request data.
*/
abstract serialise(requestData: TRequest): Promise<string>;
/**
*
* @param response The http response.
* @param requestData Request data.
*/
abstract deserialise(response: Response, requestData: TRequest): Promise<TResponse>;
/**
* @inheritdoc
* @throws {SerialisationError}
* @throws {DeserialisationError}
*/
protected invokeInternal(requestData: TRequest): Promise<TResponse>;
private serialiseQuery;
}