@veams/http-service
Version:
Generic and easy http service class
58 lines (57 loc) • 1.71 kB
TypeScript
/**
* Represents a simple http service, which returns a promise.
*
* @module http
* @author Sebastian Fitzner
*/
import Base from '@veams/base';
export interface RequestObject {
method?: string;
url?: string;
type?: string;
data?: string;
}
export interface ServiceOptions {
url?: string;
type?: string;
method?: string;
fetchOnInit?: boolean;
headers?: object;
}
export interface Parser {
type: string;
request: Request;
}
export interface Request {
responseText: string;
status: number;
statusText: string;
}
declare class HttpService extends Base {
data: any;
options: ServiceOptions;
constructor(options?: ServiceOptions);
initialize(): Promise<{}>;
requestWillOpen(request: XMLHttpRequest, obj: any): void;
requestDidOpen(request: XMLHttpRequest, obj: any): void;
requestWillLoad(request: XMLHttpRequest, obj: any): void;
requestDidLoad(request: XMLHttpRequest, obj: any): void;
requestWillSend(request: XMLHttpRequest, obj: any): void;
requestDidSend(request: XMLHttpRequest, obj: any): void;
promiseRequest(obj?: RequestObject): Promise<{}>;
get(url?: any): Promise<{}>;
delete(url?: any): Promise<{}>;
post(url: any, data: any): Promise<{}>;
put(url: any, data: any): Promise<{}>;
/**
* The default parser, which returns the response text.
* This method can be overridden.
*
* @param {Object} obj - Generic object.
* @param {Object} obj.request - Request object.
* @param {String} obj.type - Define a type for the response text.
* @param {Object} obj.data - Data object.
*/
parser(obj: Parser): object;
}
export default HttpService;