UNPKG

4.85 kBTypeScriptView Raw
1import { AjaxRequest, AjaxResponseType } from './types';
2/**
3 * A normalized response from an AJAX request. To get the data from the response,
4 * you will want to read the `response` property.
5 *
6 * - DO NOT create instances of this class directly.
7 * - DO NOT subclass this class.
8 *
9 * It is advised not to hold this object in memory, as it has a reference to
10 * the original XHR used to make the request, as well as properties containing
11 * request and response data.
12 *
13 * @see {@link ajax}
14 * @see {@link AjaxConfig}
15 */
16export declare class AjaxResponse<T> {
17 /**
18 * The original event object from the raw XHR event.
19 */
20 readonly originalEvent: ProgressEvent;
21 /**
22 * The XMLHttpRequest object used to make the request.
23 * NOTE: It is advised not to hold this in memory, as it will retain references to all of it's event handlers
24 * and many other things related to the request.
25 */
26 readonly xhr: XMLHttpRequest;
27 /**
28 * The request parameters used to make the HTTP request.
29 */
30 readonly request: AjaxRequest;
31 /**
32 * The event type. This can be used to discern between different events
33 * if you're using progress events with {@link includeDownloadProgress} or
34 * {@link includeUploadProgress} settings in {@link AjaxConfig}.
35 *
36 * The event type consists of two parts: the {@link AjaxDirection} and the
37 * the event type. Merged with `_`, they form the `type` string. The
38 * direction can be an `upload` or a `download` direction, while an event can
39 * be `loadstart`, `progress` or `load`.
40 *
41 * `download_load` is the type of event when download has finished and the
42 * response is available.
43 */
44 readonly type: AjaxResponseType;
45 /** The HTTP status code */
46 readonly status: number;
47 /**
48 * The response data, if any. Note that this will automatically be converted to the proper type
49 */
50 readonly response: T;
51 /**
52 * The responseType set on the request. (For example: `""`, `"arraybuffer"`, `"blob"`, `"document"`, `"json"`, or `"text"`)
53 * @deprecated There isn't much reason to examine this. It's the same responseType set (or defaulted) on the ajax config.
54 * If you really need to examine this value, you can check it on the `request` or the `xhr`. Will be removed in v8.
55 */
56 readonly responseType: XMLHttpRequestResponseType;
57 /**
58 * The total number of bytes loaded so far. To be used with {@link total} while
59 * calculating progress. (You will want to set {@link includeDownloadProgress} or
60 * {@link includeDownloadProgress})
61 */
62 readonly loaded: number;
63 /**
64 * The total number of bytes to be loaded. To be used with {@link loaded} while
65 * calculating progress. (You will want to set {@link includeDownloadProgress} or
66 * {@link includeDownloadProgress})
67 */
68 readonly total: number;
69 /**
70 * A dictionary of the response headers.
71 */
72 readonly responseHeaders: Record<string, string>;
73 /**
74 * A normalized response from an AJAX request. To get the data from the response,
75 * you will want to read the `response` property.
76 *
77 * - DO NOT create instances of this class directly.
78 * - DO NOT subclass this class.
79 *
80 * @param originalEvent The original event object from the XHR `onload` event.
81 * @param xhr The `XMLHttpRequest` object used to make the request. This is useful for examining status code, etc.
82 * @param request The request settings used to make the HTTP request.
83 * @param type The type of the event emitted by the {@link ajax} Observable
84 */
85 constructor(
86 /**
87 * The original event object from the raw XHR event.
88 */
89 originalEvent: ProgressEvent,
90 /**
91 * The XMLHttpRequest object used to make the request.
92 * NOTE: It is advised not to hold this in memory, as it will retain references to all of it's event handlers
93 * and many other things related to the request.
94 */
95 xhr: XMLHttpRequest,
96 /**
97 * The request parameters used to make the HTTP request.
98 */
99 request: AjaxRequest,
100 /**
101 * The event type. This can be used to discern between different events
102 * if you're using progress events with {@link includeDownloadProgress} or
103 * {@link includeUploadProgress} settings in {@link AjaxConfig}.
104 *
105 * The event type consists of two parts: the {@link AjaxDirection} and the
106 * the event type. Merged with `_`, they form the `type` string. The
107 * direction can be an `upload` or a `download` direction, while an event can
108 * be `loadstart`, `progress` or `load`.
109 *
110 * `download_load` is the type of event when download has finished and the
111 * response is available.
112 */
113 type?: AjaxResponseType);
114}
115//# sourceMappingURL=AjaxResponse.d.ts.map
\No newline at end of file