@alterior/http 3.11.1 → 3.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend.d.ts +38 -38
- package/dist/backend.js +38 -38
- package/dist/client.d.ts +2108 -2108
- package/dist/client.js +265 -265
- package/dist/client.js.map +1 -1
- package/dist/headers.d.ts +57 -57
- package/dist/headers.js +187 -187
- package/dist/headers.js.map +1 -1
- package/dist/index.d.ts +18 -18
- package/dist/index.js +42 -42
- package/dist/interceptor.d.ts +63 -63
- package/dist/interceptor.js +43 -43
- package/dist/interceptor.js.map +1 -1
- package/dist/module.d.ts +101 -101
- package/dist/module.js +188 -188
- package/dist/module.js.map +1 -1
- package/dist/params.d.ts +98 -98
- package/dist/params.js +184 -184
- package/dist/params.js.map +1 -1
- package/dist/request.d.ts +130 -130
- package/dist/request.js +260 -260
- package/dist/request.js.map +1 -1
- package/dist/response.d.ts +267 -267
- package/dist/response.js +165 -165
- package/dist/response.js.map +1 -1
- package/dist/server.d.ts +28 -28
- package/dist/server.js +119 -119
- package/dist/server.js.map +1 -1
- package/dist/test/client.test.d.ts +8 -8
- package/dist/test/client.test.js +163 -163
- package/dist/test/client.test.js.map +1 -1
- package/dist/test/headers.test.d.ts +1 -1
- package/dist/test/headers.test.js +126 -126
- package/dist/test/module.test.d.ts +1 -1
- package/dist/test/module.test.js +117 -117
- package/dist/test/module.test.js.map +1 -1
- package/dist/test/params.test.d.ts +1 -1
- package/dist/test/params.test.js +63 -63
- package/dist/test/request.test.d.ts +8 -8
- package/dist/test/request.test.js +159 -159
- package/dist/test/request.test.js.map +1 -1
- package/dist/test/response.test.d.ts +1 -1
- package/dist/test/response.test.js +79 -79
- package/dist/test/response.test.js.map +1 -1
- package/dist/test/test.d.ts +1 -1
- package/dist/test/test.js +16 -16
- package/dist/test/xhr.mock.d.ts +48 -48
- package/dist/test/xhr.mock.js +94 -94
- package/dist/test/xhr.mock.js.map +1 -1
- package/dist/test/xhr.test.d.ts +1 -1
- package/dist/test/xhr.test.js +344 -344
- package/dist/test/xhr.test.js.map +1 -1
- package/dist/test/xsrf.test.d.ts +1 -1
- package/dist/test/xsrf.test.js +63 -63
- package/dist/test/xsrf.test.js.map +1 -1
- package/dist/testing/api.d.ts +102 -102
- package/dist/testing/api.js +19 -19
- package/dist/testing/backend.d.ts +63 -63
- package/dist/testing/backend.js +141 -141
- package/dist/testing/backend.js.map +1 -1
- package/dist/testing/index.d.ts +10 -10
- package/dist/testing/index.js +16 -16
- package/dist/testing/module.d.ts +16 -16
- package/dist/testing/module.js +38 -38
- package/dist/testing/module.js.map +1 -1
- package/dist/testing/request.d.ts +56 -56
- package/dist/testing/request.js +177 -177
- package/dist/testing/request.js.map +1 -1
- package/dist/testing/request.test.d.ts +8 -8
- package/dist/testing/request.test.js +24 -24
- package/dist/xhr.d.ts +42 -42
- package/dist/xhr.js +298 -298
- package/dist/xhr.js.map +1 -1
- package/dist/xsrf.d.ts +37 -37
- package/dist/xsrf.js +55 -55
- package/dist/xsrf.js.map +1 -1
- package/dist.esm/backend.d.ts +38 -38
- package/dist.esm/backend.js +33 -33
- package/dist.esm/client.d.ts +2108 -2108
- package/dist.esm/client.js +262 -262
- package/dist.esm/client.js.map +1 -1
- package/dist.esm/headers.d.ts +57 -57
- package/dist.esm/headers.js +183 -183
- package/dist.esm/headers.js.map +1 -1
- package/dist.esm/index.d.ts +18 -18
- package/dist.esm/index.js +18 -18
- package/dist.esm/interceptor.d.ts +63 -63
- package/dist.esm/interceptor.js +39 -39
- package/dist.esm/interceptor.js.map +1 -1
- package/dist.esm/module.d.ts +101 -101
- package/dist.esm/module.js +183 -183
- package/dist.esm/module.js.map +1 -1
- package/dist.esm/params.d.ts +98 -98
- package/dist.esm/params.js +179 -179
- package/dist.esm/params.js.map +1 -1
- package/dist.esm/request.d.ts +130 -130
- package/dist.esm/request.js +256 -256
- package/dist.esm/request.js.map +1 -1
- package/dist.esm/response.d.ts +267 -267
- package/dist.esm/response.js +158 -158
- package/dist.esm/response.js.map +1 -1
- package/dist.esm/server.d.ts +28 -28
- package/dist.esm/server.js +113 -113
- package/dist.esm/server.js.map +1 -1
- package/dist.esm/test/client.test.d.ts +8 -8
- package/dist.esm/test/client.test.js +161 -161
- package/dist.esm/test/client.test.js.map +1 -1
- package/dist.esm/test/headers.test.d.ts +1 -1
- package/dist.esm/test/headers.test.js +124 -124
- package/dist.esm/test/module.test.d.ts +1 -1
- package/dist.esm/test/module.test.js +115 -115
- package/dist.esm/test/module.test.js.map +1 -1
- package/dist.esm/test/params.test.d.ts +1 -1
- package/dist.esm/test/params.test.js +61 -61
- package/dist.esm/test/request.test.d.ts +8 -8
- package/dist.esm/test/request.test.js +157 -157
- package/dist.esm/test/request.test.js.map +1 -1
- package/dist.esm/test/response.test.d.ts +1 -1
- package/dist.esm/test/response.test.js +77 -77
- package/dist.esm/test/response.test.js.map +1 -1
- package/dist.esm/test/test.d.ts +1 -1
- package/dist.esm/test/test.js +14 -14
- package/dist.esm/test/xhr.mock.d.ts +48 -48
- package/dist.esm/test/xhr.mock.js +88 -88
- package/dist.esm/test/xhr.mock.js.map +1 -1
- package/dist.esm/test/xhr.test.d.ts +1 -1
- package/dist.esm/test/xhr.test.js +342 -342
- package/dist.esm/test/xhr.test.js.map +1 -1
- package/dist.esm/test/xsrf.test.d.ts +1 -1
- package/dist.esm/test/xsrf.test.js +61 -61
- package/dist.esm/test/xsrf.test.js.map +1 -1
- package/dist.esm/testing/api.d.ts +102 -102
- package/dist.esm/testing/api.js +15 -15
- package/dist.esm/testing/backend.d.ts +63 -63
- package/dist.esm/testing/backend.js +138 -138
- package/dist.esm/testing/backend.js.map +1 -1
- package/dist.esm/testing/index.d.ts +10 -10
- package/dist.esm/testing/index.js +10 -10
- package/dist.esm/testing/module.d.ts +16 -16
- package/dist.esm/testing/module.js +35 -35
- package/dist.esm/testing/module.js.map +1 -1
- package/dist.esm/testing/request.d.ts +56 -56
- package/dist.esm/testing/request.js +173 -173
- package/dist.esm/testing/request.js.map +1 -1
- package/dist.esm/testing/request.test.d.ts +8 -8
- package/dist.esm/testing/request.test.js +22 -22
- package/dist.esm/xhr.d.ts +42 -42
- package/dist.esm/xhr.js +294 -294
- package/dist.esm/xhr.js.map +1 -1
- package/dist.esm/xsrf.d.ts +37 -37
- package/dist.esm/xsrf.js +51 -51
- package/dist.esm/xsrf.js.map +1 -1
- package/package.json +11 -11
- package/tsconfig.esm.tsbuildinfo +1 -0
- package/tsconfig.json +0 -2
- package/tsconfig.tsbuildinfo +1 -8046
|
@@ -1,174 +1,174 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { HttpResponse, HttpErrorResponse } from '../response';
|
|
9
|
-
import { HttpHeaders } from '../headers';
|
|
10
|
-
/**
|
|
11
|
-
* A mock requests that was received and is ready to be answered.
|
|
12
|
-
*
|
|
13
|
-
* This interface allows access to the underlying `HttpRequest`, and allows
|
|
14
|
-
* responding with `HttpEvent`s or `HttpErrorResponse`s.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
|
-
export class TestRequest {
|
|
19
|
-
/**
|
|
20
|
-
* Whether the request was cancelled after it was sent.
|
|
21
|
-
*/
|
|
22
|
-
get cancelled() { return this._cancelled; }
|
|
23
|
-
constructor(request, observer) {
|
|
24
|
-
this.request = request;
|
|
25
|
-
this.observer = observer;
|
|
26
|
-
/**
|
|
27
|
-
* @internal set by `HttpClientTestingBackend`
|
|
28
|
-
*/
|
|
29
|
-
this._cancelled = false;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Resolve the request by returning a body plus additional HTTP information (such as response
|
|
33
|
-
* headers) if provided.
|
|
34
|
-
*
|
|
35
|
-
* Both successful and unsuccessful responses can be delivered via `flush()`.
|
|
36
|
-
*/
|
|
37
|
-
flush(body, opts = {}) {
|
|
38
|
-
if (this.cancelled) {
|
|
39
|
-
throw new Error(`Cannot flush a cancelled request.`);
|
|
40
|
-
}
|
|
41
|
-
const url = this.request.urlWithParams;
|
|
42
|
-
const headers = (opts.headers instanceof HttpHeaders) ? opts.headers : new HttpHeaders(opts.headers);
|
|
43
|
-
body = _maybeConvertBody(this.request.responseType, body);
|
|
44
|
-
let statusText = opts.statusText;
|
|
45
|
-
let status = opts.status !== undefined ? opts.status : 200;
|
|
46
|
-
if (opts.status === undefined) {
|
|
47
|
-
if (body === null) {
|
|
48
|
-
status = 204;
|
|
49
|
-
statusText = statusText || 'No Content';
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
statusText = statusText || 'OK';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (statusText === undefined) {
|
|
56
|
-
throw new Error('statusText is required when setting a custom status.');
|
|
57
|
-
}
|
|
58
|
-
if (status >= 200 && status < 300) {
|
|
59
|
-
this.observer.next(new HttpResponse({ body, headers, status, statusText, url }));
|
|
60
|
-
this.observer.complete();
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.observer.error(new HttpErrorResponse({ error: body, headers, status, statusText, url }));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Resolve the request by returning an `ErrorEvent` (e.g. simulating a network failure).
|
|
68
|
-
*/
|
|
69
|
-
error(error, opts = {}) {
|
|
70
|
-
if (this.cancelled) {
|
|
71
|
-
throw new Error(`Cannot return an error for a cancelled request.`);
|
|
72
|
-
}
|
|
73
|
-
if (opts.status && opts.status >= 200 && opts.status < 300) {
|
|
74
|
-
throw new Error(`error() called with a successful status.`);
|
|
75
|
-
}
|
|
76
|
-
const headers = (opts.headers instanceof HttpHeaders) ? opts.headers : new HttpHeaders(opts.headers);
|
|
77
|
-
this.observer.error(new HttpErrorResponse({
|
|
78
|
-
error,
|
|
79
|
-
headers,
|
|
80
|
-
status: opts.status || 0,
|
|
81
|
-
statusText: opts.statusText || '',
|
|
82
|
-
url: this.request.urlWithParams,
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Deliver an arbitrary `HttpEvent` (such as a progress event) on the response stream for this
|
|
87
|
-
* request.
|
|
88
|
-
*/
|
|
89
|
-
event(event) {
|
|
90
|
-
if (this.cancelled) {
|
|
91
|
-
throw new Error(`Cannot send events to a cancelled request.`);
|
|
92
|
-
}
|
|
93
|
-
this.observer.next(event);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Helper function to convert a response body to an ArrayBuffer.
|
|
98
|
-
*/
|
|
99
|
-
function _toArrayBufferBody(body) {
|
|
100
|
-
if (typeof ArrayBuffer === 'undefined') {
|
|
101
|
-
throw new Error('ArrayBuffer responses are not supported on this platform.');
|
|
102
|
-
}
|
|
103
|
-
if (body instanceof ArrayBuffer) {
|
|
104
|
-
return body;
|
|
105
|
-
}
|
|
106
|
-
throw new Error('Automatic conversion to ArrayBuffer is not supported for response type.');
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Helper function to convert a response body to a Blob.
|
|
110
|
-
*/
|
|
111
|
-
function _toBlob(body) {
|
|
112
|
-
if (typeof Blob === 'undefined') {
|
|
113
|
-
throw new Error('Blob responses are not supported on this platform.');
|
|
114
|
-
}
|
|
115
|
-
if (body instanceof Blob) {
|
|
116
|
-
return body;
|
|
117
|
-
}
|
|
118
|
-
if (ArrayBuffer && body instanceof ArrayBuffer) {
|
|
119
|
-
return new Blob([body]);
|
|
120
|
-
}
|
|
121
|
-
throw new Error('Automatic conversion to Blob is not supported for response type.');
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Helper function to convert a response body to JSON data.
|
|
125
|
-
*/
|
|
126
|
-
function _toJsonBody(body, format = 'JSON') {
|
|
127
|
-
if (typeof ArrayBuffer !== 'undefined' && body instanceof ArrayBuffer) {
|
|
128
|
-
throw new Error(`Automatic conversion to ${format} is not supported for ArrayBuffers.`);
|
|
129
|
-
}
|
|
130
|
-
if (typeof Blob !== 'undefined' && body instanceof Blob) {
|
|
131
|
-
throw new Error(`Automatic conversion to ${format} is not supported for Blobs.`);
|
|
132
|
-
}
|
|
133
|
-
if (typeof body === 'string' || typeof body === 'number' || typeof body === 'object' ||
|
|
134
|
-
Array.isArray(body)) {
|
|
135
|
-
return body;
|
|
136
|
-
}
|
|
137
|
-
throw new Error(`Automatic conversion to ${format} is not supported for response type.`);
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Helper function to convert a response body to a string.
|
|
141
|
-
*/
|
|
142
|
-
function _toTextBody(body) {
|
|
143
|
-
if (typeof body === 'string') {
|
|
144
|
-
return body;
|
|
145
|
-
}
|
|
146
|
-
if (typeof ArrayBuffer !== 'undefined' && body instanceof ArrayBuffer) {
|
|
147
|
-
throw new Error('Automatic conversion to text is not supported for ArrayBuffers.');
|
|
148
|
-
}
|
|
149
|
-
if (typeof Blob !== 'undefined' && body instanceof Blob) {
|
|
150
|
-
throw new Error('Automatic conversion to text is not supported for Blobs.');
|
|
151
|
-
}
|
|
152
|
-
return JSON.stringify(_toJsonBody(body, 'text'));
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Convert a response body to the requested type.
|
|
156
|
-
*/
|
|
157
|
-
function _maybeConvertBody(responseType, body) {
|
|
158
|
-
if (body === null) {
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
switch (responseType) {
|
|
162
|
-
case 'arraybuffer':
|
|
163
|
-
return _toArrayBufferBody(body);
|
|
164
|
-
case 'blob':
|
|
165
|
-
return _toBlob(body);
|
|
166
|
-
case 'json':
|
|
167
|
-
return _toJsonBody(body);
|
|
168
|
-
case 'text':
|
|
169
|
-
return _toTextBody(body);
|
|
170
|
-
default:
|
|
171
|
-
throw new Error(`Unsupported responseType: ${responseType}`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { HttpResponse, HttpErrorResponse } from '../response';
|
|
9
|
+
import { HttpHeaders } from '../headers';
|
|
10
|
+
/**
|
|
11
|
+
* A mock requests that was received and is ready to be answered.
|
|
12
|
+
*
|
|
13
|
+
* This interface allows access to the underlying `HttpRequest`, and allows
|
|
14
|
+
* responding with `HttpEvent`s or `HttpErrorResponse`s.
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export class TestRequest {
|
|
19
|
+
/**
|
|
20
|
+
* Whether the request was cancelled after it was sent.
|
|
21
|
+
*/
|
|
22
|
+
get cancelled() { return this._cancelled; }
|
|
23
|
+
constructor(request, observer) {
|
|
24
|
+
this.request = request;
|
|
25
|
+
this.observer = observer;
|
|
26
|
+
/**
|
|
27
|
+
* @internal set by `HttpClientTestingBackend`
|
|
28
|
+
*/
|
|
29
|
+
this._cancelled = false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the request by returning a body plus additional HTTP information (such as response
|
|
33
|
+
* headers) if provided.
|
|
34
|
+
*
|
|
35
|
+
* Both successful and unsuccessful responses can be delivered via `flush()`.
|
|
36
|
+
*/
|
|
37
|
+
flush(body, opts = {}) {
|
|
38
|
+
if (this.cancelled) {
|
|
39
|
+
throw new Error(`Cannot flush a cancelled request.`);
|
|
40
|
+
}
|
|
41
|
+
const url = this.request.urlWithParams;
|
|
42
|
+
const headers = (opts.headers instanceof HttpHeaders) ? opts.headers : new HttpHeaders(opts.headers);
|
|
43
|
+
body = _maybeConvertBody(this.request.responseType, body);
|
|
44
|
+
let statusText = opts.statusText;
|
|
45
|
+
let status = opts.status !== undefined ? opts.status : 200;
|
|
46
|
+
if (opts.status === undefined) {
|
|
47
|
+
if (body === null) {
|
|
48
|
+
status = 204;
|
|
49
|
+
statusText = statusText || 'No Content';
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
statusText = statusText || 'OK';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (statusText === undefined) {
|
|
56
|
+
throw new Error('statusText is required when setting a custom status.');
|
|
57
|
+
}
|
|
58
|
+
if (status >= 200 && status < 300) {
|
|
59
|
+
this.observer.next(new HttpResponse({ body, headers, status, statusText, url }));
|
|
60
|
+
this.observer.complete();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.observer.error(new HttpErrorResponse({ error: body, headers, status, statusText, url }));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the request by returning an `ErrorEvent` (e.g. simulating a network failure).
|
|
68
|
+
*/
|
|
69
|
+
error(error, opts = {}) {
|
|
70
|
+
if (this.cancelled) {
|
|
71
|
+
throw new Error(`Cannot return an error for a cancelled request.`);
|
|
72
|
+
}
|
|
73
|
+
if (opts.status && opts.status >= 200 && opts.status < 300) {
|
|
74
|
+
throw new Error(`error() called with a successful status.`);
|
|
75
|
+
}
|
|
76
|
+
const headers = (opts.headers instanceof HttpHeaders) ? opts.headers : new HttpHeaders(opts.headers);
|
|
77
|
+
this.observer.error(new HttpErrorResponse({
|
|
78
|
+
error,
|
|
79
|
+
headers,
|
|
80
|
+
status: opts.status || 0,
|
|
81
|
+
statusText: opts.statusText || '',
|
|
82
|
+
url: this.request.urlWithParams,
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Deliver an arbitrary `HttpEvent` (such as a progress event) on the response stream for this
|
|
87
|
+
* request.
|
|
88
|
+
*/
|
|
89
|
+
event(event) {
|
|
90
|
+
if (this.cancelled) {
|
|
91
|
+
throw new Error(`Cannot send events to a cancelled request.`);
|
|
92
|
+
}
|
|
93
|
+
this.observer.next(event);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Helper function to convert a response body to an ArrayBuffer.
|
|
98
|
+
*/
|
|
99
|
+
function _toArrayBufferBody(body) {
|
|
100
|
+
if (typeof ArrayBuffer === 'undefined') {
|
|
101
|
+
throw new Error('ArrayBuffer responses are not supported on this platform.');
|
|
102
|
+
}
|
|
103
|
+
if (body instanceof ArrayBuffer) {
|
|
104
|
+
return body;
|
|
105
|
+
}
|
|
106
|
+
throw new Error('Automatic conversion to ArrayBuffer is not supported for response type.');
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Helper function to convert a response body to a Blob.
|
|
110
|
+
*/
|
|
111
|
+
function _toBlob(body) {
|
|
112
|
+
if (typeof Blob === 'undefined') {
|
|
113
|
+
throw new Error('Blob responses are not supported on this platform.');
|
|
114
|
+
}
|
|
115
|
+
if (body instanceof Blob) {
|
|
116
|
+
return body;
|
|
117
|
+
}
|
|
118
|
+
if (ArrayBuffer && body instanceof ArrayBuffer) {
|
|
119
|
+
return new Blob([body]);
|
|
120
|
+
}
|
|
121
|
+
throw new Error('Automatic conversion to Blob is not supported for response type.');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Helper function to convert a response body to JSON data.
|
|
125
|
+
*/
|
|
126
|
+
function _toJsonBody(body, format = 'JSON') {
|
|
127
|
+
if (typeof ArrayBuffer !== 'undefined' && body instanceof ArrayBuffer) {
|
|
128
|
+
throw new Error(`Automatic conversion to ${format} is not supported for ArrayBuffers.`);
|
|
129
|
+
}
|
|
130
|
+
if (typeof Blob !== 'undefined' && body instanceof Blob) {
|
|
131
|
+
throw new Error(`Automatic conversion to ${format} is not supported for Blobs.`);
|
|
132
|
+
}
|
|
133
|
+
if (typeof body === 'string' || typeof body === 'number' || typeof body === 'object' ||
|
|
134
|
+
Array.isArray(body)) {
|
|
135
|
+
return body;
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`Automatic conversion to ${format} is not supported for response type.`);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Helper function to convert a response body to a string.
|
|
141
|
+
*/
|
|
142
|
+
function _toTextBody(body) {
|
|
143
|
+
if (typeof body === 'string') {
|
|
144
|
+
return body;
|
|
145
|
+
}
|
|
146
|
+
if (typeof ArrayBuffer !== 'undefined' && body instanceof ArrayBuffer) {
|
|
147
|
+
throw new Error('Automatic conversion to text is not supported for ArrayBuffers.');
|
|
148
|
+
}
|
|
149
|
+
if (typeof Blob !== 'undefined' && body instanceof Blob) {
|
|
150
|
+
throw new Error('Automatic conversion to text is not supported for Blobs.');
|
|
151
|
+
}
|
|
152
|
+
return JSON.stringify(_toJsonBody(body, 'text'));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Convert a response body to the requested type.
|
|
156
|
+
*/
|
|
157
|
+
function _maybeConvertBody(responseType, body) {
|
|
158
|
+
if (body === null) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
switch (responseType) {
|
|
162
|
+
case 'arraybuffer':
|
|
163
|
+
return _toArrayBufferBody(body);
|
|
164
|
+
case 'blob':
|
|
165
|
+
return _toBlob(body);
|
|
166
|
+
case 'json':
|
|
167
|
+
return _toJsonBody(body);
|
|
168
|
+
case 'text':
|
|
169
|
+
return _toTextBody(body);
|
|
170
|
+
default:
|
|
171
|
+
throw new Error(`Unsupported responseType: ${responseType}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
174
|
//# sourceMappingURL=request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/testing/request.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAa,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACH,IAAI,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAOpD,YAAmB,OAAyB,EAAU,QAAkC;QAArE,YAAO,GAAP,OAAO,CAAkB;QAAU,aAAQ,GAAR,QAAQ,CAA0B;QALxF;;WAEG;QACH,eAAU,GAAG,KAAK,CAAC;IAEwE,CAAC;IAE5F;;;;;OAKG;IACH,KAAK,CAAC,IAA8E,EAAE,OAIlF,EAAE;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/testing/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
9
|
//# sourceMappingURL=request.test.d.ts.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { describe, it } from 'razmin';
|
|
9
|
-
import { HttpClient } from '../../src/client';
|
|
10
|
-
import { HttpClientTestingBackend } from './backend';
|
|
11
|
-
import { expect } from 'chai';
|
|
12
|
-
describe('HttpClient TestRequest', () => {
|
|
13
|
-
it('accepts a null body', () => {
|
|
14
|
-
const mock = new HttpClientTestingBackend();
|
|
15
|
-
const client = new HttpClient(mock);
|
|
16
|
-
let resp;
|
|
17
|
-
client.post('/some-url', { test: 'test' }).subscribe(body => { resp = body; });
|
|
18
|
-
const req = mock.expectOne('/some-url');
|
|
19
|
-
req.flush(null);
|
|
20
|
-
expect(resp).to.be.null;
|
|
21
|
-
});
|
|
22
|
-
});
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { describe, it } from 'razmin';
|
|
9
|
+
import { HttpClient } from '../../src/client';
|
|
10
|
+
import { HttpClientTestingBackend } from './backend';
|
|
11
|
+
import { expect } from 'chai';
|
|
12
|
+
describe('HttpClient TestRequest', () => {
|
|
13
|
+
it('accepts a null body', () => {
|
|
14
|
+
const mock = new HttpClientTestingBackend();
|
|
15
|
+
const client = new HttpClient(mock);
|
|
16
|
+
let resp;
|
|
17
|
+
client.post('/some-url', { test: 'test' }).subscribe(body => { resp = body; });
|
|
18
|
+
const req = mock.expectOne('/some-url');
|
|
19
|
+
req.flush(null);
|
|
20
|
+
expect(resp).to.be.null;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
23
|
//# sourceMappingURL=request.test.js.map
|
package/dist.esm/xhr.d.ts
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { Observable } from 'rxjs';
|
|
9
|
-
import { HttpBackend } from './backend';
|
|
10
|
-
import { HttpRequest } from './request';
|
|
11
|
-
import { HttpEvent } from './response';
|
|
12
|
-
/**
|
|
13
|
-
* A wrapper around the `XMLHttpRequest` constructor.
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
export declare abstract class XhrFactory {
|
|
18
|
-
abstract build(): XMLHttpRequest;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* A factory for @{link HttpXhrBackend} that uses the `XMLHttpRequest` browser API.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
export declare class BrowserXhr implements XhrFactory {
|
|
26
|
-
constructor();
|
|
27
|
-
build(): any;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* An `HttpBackend` which uses the XMLHttpRequest API to send
|
|
31
|
-
* requests to a backend server.
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
export declare class HttpXhrBackend implements HttpBackend {
|
|
36
|
-
private xhrFactory;
|
|
37
|
-
constructor(xhrFactory: XhrFactory);
|
|
38
|
-
/**
|
|
39
|
-
* Process a request and return a stream of response events.
|
|
40
|
-
*/
|
|
41
|
-
handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;
|
|
42
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { Observable } from 'rxjs';
|
|
9
|
+
import { HttpBackend } from './backend';
|
|
10
|
+
import { HttpRequest } from './request';
|
|
11
|
+
import { HttpEvent } from './response';
|
|
12
|
+
/**
|
|
13
|
+
* A wrapper around the `XMLHttpRequest` constructor.
|
|
14
|
+
*
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class XhrFactory {
|
|
18
|
+
abstract build(): XMLHttpRequest;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A factory for @{link HttpXhrBackend} that uses the `XMLHttpRequest` browser API.
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
export declare class BrowserXhr implements XhrFactory {
|
|
26
|
+
constructor();
|
|
27
|
+
build(): any;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* An `HttpBackend` which uses the XMLHttpRequest API to send
|
|
31
|
+
* requests to a backend server.
|
|
32
|
+
*
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
export declare class HttpXhrBackend implements HttpBackend {
|
|
36
|
+
private xhrFactory;
|
|
37
|
+
constructor(xhrFactory: XhrFactory);
|
|
38
|
+
/**
|
|
39
|
+
* Process a request and return a stream of response events.
|
|
40
|
+
*/
|
|
41
|
+
handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;
|
|
42
|
+
}
|
|
43
43
|
//# sourceMappingURL=xhr.d.ts.map
|