js-xajax
Version:
XHR tool wrapper, convenient use and global management.
89 lines • 2.45 kB
TypeScript
export declare enum HttpMethod {
GET = "GET",
POST = "POST",
PUT = "PUT",
PATCH = "PATCH",
DELETE = "DELETE",
OPTIONS = "OPTIONS",
get = "GET",
post = "POST",
put = "PUT",
patch = "PATCH",
delete = "DELETE",
options = "OPTIONS"
}
export interface Events {
READY_STATE_CHANGE: 'readystatechange';
LOAD_START: 'loadstart';
PROGRESS: 'progress';
ABORT: 'abort';
ERROR: 'error';
LOAD: 'load';
TIMEOUT: 'timeout';
LOAD_END: 'loadend';
}
export declare const EVENTS: {
READY_STATE_CHANGE: string;
LOAD_START: string;
PROGRESS: string;
ABORT: string;
ERROR: string;
LOAD: string;
TIMEOUT: string;
LOAD_END: string;
};
export interface requestConfig<T = unknown> {
url: string;
method: HttpMethod;
params?: any;
data?: any;
headers?: {
[key: string]: string;
};
raw?: boolean;
dump?: (data: T) => string;
load?: (str: string) => T;
xmlHttpRequest?: () => XMLHttpRequest;
}
export interface XAjaxOptions<T = unknown> {
dump?: (data: T) => string;
load?: (str: string) => T;
xmlHttpRequest?: () => XMLHttpRequest;
withCredentials?: boolean;
raw?: boolean;
eventsHandler?: {
[key: string]: () => void;
};
baseUrl?: string;
timeout?: number;
requestHandler?: HandlerFunction;
responseHandler?: HandlerFunction;
errorHandler?: HandlerFunction;
requestFinally?: () => void;
setRequestHeaders?: HandlerFunction<object>;
}
interface HandlerFunction<T = any> {
(data: T): T;
}
export declare class XAjaxClass {
private _options;
private _defaultConfig;
constructor(options?: XAjaxOptions);
private _timeoutPromise;
private _res;
request(config: requestConfig): Promise<any>;
get(url: string, params?: any, headers?: any): Promise<any>;
post(url: string, data?: any, headers?: any): Promise<any>;
patch(url: string, data?: any, headers?: any): Promise<any>;
put(url: string, data?: any, headers?: any): Promise<any>;
delete(url: string, data?: any, headers?: any): Promise<any>;
getBaseURL(): string | undefined;
setBaseURL(url?: string): XAjaxClass;
setRequestTimeout(timeout: number): XAjaxClass;
getInstance(): XAjaxClass;
create(options?: XAjaxOptions): XAjaxClass;
}
declare const XAjax: XAjaxClass;
export { XAjax };
export default XAjax;
//# sourceMappingURL=index.d.ts.map