Bones/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
SOUTHERNCO\x2mjbyrn 7efe7605b8 Template Upload
2017-05-17 13:45:25 -04:00

101 lines
4.3 KiB
TypeScript

import { Observable } from '../../Observable';
import { Subscriber } from '../../Subscriber';
import { Subscription } from '../../Subscription';
export interface AjaxRequest {
url?: string;
body?: any;
user?: string;
async?: boolean;
method: string;
headers?: Object;
timeout?: number;
password?: string;
hasContent?: boolean;
crossDomain?: boolean;
createXHR?: () => XMLHttpRequest;
progressSubscriber?: Subscriber<any>;
resultSelector?: <T>(response: AjaxResponse) => T;
responseType?: string;
}
export interface AjaxCreationMethod {
(): <T>(urlOrRequest: string | AjaxRequest) => Observable<T>;
get: <T>(url: string, resultSelector?: (response: AjaxResponse) => T, headers?: Object) => Observable<T>;
post: <T>(url: string, body?: any, headers?: Object) => Observable<T>;
put: <T>(url: string, body?: any, headers?: Object) => Observable<T>;
delete: <T>(url: string, headers?: Object) => Observable<T>;
getJSON: <T, R>(url: string, resultSelector?: (data: T) => R, headers?: Object) => Observable<R>;
}
export declare function ajaxGet<T>(url: string, resultSelector?: (response: AjaxResponse) => T, headers?: Object): AjaxObservable<T>;
export declare function ajaxPost<T>(url: string, body?: any, headers?: Object): Observable<T>;
export declare function ajaxDelete<T>(url: string, headers?: Object): Observable<T>;
export declare function ajaxPut<T>(url: string, body?: any, headers?: Object): Observable<T>;
export declare function ajaxGetJSON<T, R>(url: string, resultSelector?: (data: T) => R, headers?: Object): Observable<R>;
/**
* Creates an observable for an Ajax request with either a request object with url, headers, etc or a string for a URL.
*
* @example
* source = Rx.Observable.ajax('/products');
* source = Rx.Observable.ajax( url: 'products', method: 'GET' });
*
* @param {Object} request Can be one of the following:
*
* A string of the URL to make the Ajax call.
* An object with the following properties
* - url: URL of the request
* - body: The body of the request
* - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE
* - async: Whether the request is async
* - headers: Optional headers
* - crossDomain: true if a cross domain request, else false
* - createXHR: a function to override if you need to use an alternate XMLHttpRequest implementation.
* - resultSelector: a function to use to alter the output value type of the Observable. Gets {AjaxResponse} as an argument
* @returns {Observable} An observable sequence containing the XMLHttpRequest.
*/
export declare class AjaxObservable<T> extends Observable<T> {
static create: AjaxCreationMethod;
private request;
constructor(urlOrRequest: string | AjaxRequest);
protected _subscribe(subscriber: Subscriber<T>): Subscription | Function | void;
}
export declare class AjaxSubscriber<T> extends Subscriber<Event> {
request: AjaxRequest;
private xhr;
private resultSelector;
private done;
constructor(destination: Subscriber<T>, request: AjaxRequest);
next(e: Event): void;
private send();
private serializeBody(body, contentType);
private setHeaders(xhr, headers);
private setupEvents(xhr, request);
unsubscribe(): void;
}
/** A normalized AJAX response */
export declare class AjaxResponse {
originalEvent: Event;
xhr: XMLHttpRequest;
request: AjaxRequest;
/** {number} the HTTP status code */
status: number;
/** {string|ArrayBuffer|Document|object|any} the response data */
response: any;
/** {string} the raw responseText */
responseText: string;
/** {string} the responsType (e.g. 'json', 'arraybuffer', or 'xml') */
responseType: string;
constructor(originalEvent: Event, xhr: XMLHttpRequest, request: AjaxRequest);
}
/** A normalized AJAX error */
export declare class AjaxError extends Error {
/** {XMLHttpRequest} the XHR instance associated with the error */
xhr: XMLHttpRequest;
/** {AjaxRequest} the AjaxRequest associated with the error */
request: AjaxRequest;
/** {number} the HTTP status code */
status: number;
constructor(message: string, xhr: XMLHttpRequest, request: AjaxRequest);
}
export declare class AjaxTimeoutError extends AjaxError {
constructor(xhr: XMLHttpRequest, request: AjaxRequest);
}