@alterior/http 3.0.0-rc.5 → 3.0.0
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.js +4 -10
- package/dist/backend.js.map +1 -1
- package/dist/client.js +49 -59
- package/dist/client.js.map +1 -1
- package/dist/headers.js +65 -71
- package/dist/headers.js.map +1 -1
- package/dist/interceptor.js +14 -18
- package/dist/interceptor.js.map +1 -1
- package/dist/module.js +68 -80
- package/dist/module.js.map +1 -1
- package/dist/params.js +53 -62
- package/dist/params.js.map +1 -1
- package/dist/request.js +26 -32
- package/dist/request.js.map +1 -1
- package/dist/response.js +30 -48
- package/dist/response.js.map +1 -1
- package/dist/server.js +42 -52
- package/dist/server.js.map +1 -1
- package/dist/test/client.test.js +59 -59
- package/dist/test/client.test.js.map +1 -1
- package/dist/test/headers.test.js +58 -58
- package/dist/test/headers.test.js.map +1 -1
- package/dist/test/module.test.js +92 -130
- package/dist/test/module.test.js.map +1 -1
- package/dist/test/params.test.js +30 -30
- package/dist/test/params.test.js.map +1 -1
- package/dist/test/request.test.js +77 -77
- package/dist/test/request.test.js.map +1 -1
- package/dist/test/response.test.js +22 -22
- package/dist/test/response.test.js.map +1 -1
- package/dist/test/test.js +1 -1
- package/dist/test/test.js.map +1 -1
- package/dist/test/xhr.mock.js +38 -43
- package/dist/test/xhr.mock.js.map +1 -1
- package/dist/test/xhr.test.js +98 -99
- package/dist/test/xhr.test.js.map +1 -1
- package/dist/test/xsrf.test.js +28 -32
- package/dist/test/xsrf.test.js.map +1 -1
- package/dist/testing/api.js +2 -5
- package/dist/testing/api.js.map +1 -1
- package/dist/testing/backend.js +54 -58
- package/dist/testing/backend.js.map +1 -1
- package/dist/testing/module.js +20 -23
- package/dist/testing/module.js.map +1 -1
- package/dist/testing/request.js +33 -41
- package/dist/testing/request.js.map +1 -1
- package/dist/testing/request.test.js +11 -11
- package/dist/testing/request.test.js.map +1 -1
- package/dist/xhr.js +61 -68
- package/dist/xhr.js.map +1 -1
- package/dist/xsrf.js +16 -20
- package/dist/xsrf.js.map +1 -1
- package/package.json +5 -5
package/dist/request.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.HttpRequest = void 0;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const headers_1 = require("./headers");
|
|
12
|
+
const params_1 = require("./params");
|
|
13
13
|
/**
|
|
14
14
|
* Determine whether the given HTTP method may include a body.
|
|
15
15
|
*/
|
|
@@ -59,8 +59,8 @@ function isFormData(value) {
|
|
|
59
59
|
*
|
|
60
60
|
*
|
|
61
61
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
class HttpRequest {
|
|
63
|
+
constructor(method, url, third, fourth) {
|
|
64
64
|
this.url = url;
|
|
65
65
|
/**
|
|
66
66
|
* The request body, or `null` if one isn't set.
|
|
@@ -91,7 +91,7 @@ var HttpRequest = /** @class */ (function () {
|
|
|
91
91
|
this.method = method.toUpperCase();
|
|
92
92
|
// Next, need to figure out which argument holds the HttpRequestInit
|
|
93
93
|
// options, if any.
|
|
94
|
-
|
|
94
|
+
let options;
|
|
95
95
|
// Check whether a body argument is expected. The only valid way to omit
|
|
96
96
|
// the body argument is to use a known no-body method like GET.
|
|
97
97
|
if (mightHaveBody(this.method) || !!fourth) {
|
|
@@ -131,14 +131,14 @@ var HttpRequest = /** @class */ (function () {
|
|
|
131
131
|
}
|
|
132
132
|
else {
|
|
133
133
|
// Encode the parameters to a string in preparation for inclusion in the URL.
|
|
134
|
-
|
|
134
|
+
const params = this.params.toString();
|
|
135
135
|
if (params.length === 0) {
|
|
136
136
|
// No parameters, the visible URL is just the URL given at creation time.
|
|
137
137
|
this.urlWithParams = url;
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
140
|
// Does the URL already have query parameters? Look for '?'.
|
|
141
|
-
|
|
141
|
+
const qIdx = url.indexOf('?');
|
|
142
142
|
// There are 3 cases to handle:
|
|
143
143
|
// 1) No existing parameters -> append '?' followed by params.
|
|
144
144
|
// 2) '?' exists and is followed by existing query string ->
|
|
@@ -146,7 +146,7 @@ var HttpRequest = /** @class */ (function () {
|
|
|
146
146
|
// 3) '?' exists at the end of the url -> append params directly.
|
|
147
147
|
// This basically amounts to determining the character, if any, with
|
|
148
148
|
// which to join the URL and parameters.
|
|
149
|
-
|
|
149
|
+
const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');
|
|
150
150
|
this.urlWithParams = url + sep + params;
|
|
151
151
|
}
|
|
152
152
|
}
|
|
@@ -155,7 +155,7 @@ var HttpRequest = /** @class */ (function () {
|
|
|
155
155
|
* Transform the free-form body into a serialized format suitable for
|
|
156
156
|
* transmission to the server.
|
|
157
157
|
*/
|
|
158
|
-
|
|
158
|
+
serializeBody() {
|
|
159
159
|
// If no body is present, no need to serialize it.
|
|
160
160
|
if (this.body === null) {
|
|
161
161
|
return null;
|
|
@@ -177,14 +177,14 @@ var HttpRequest = /** @class */ (function () {
|
|
|
177
177
|
}
|
|
178
178
|
// Fall back on toString() for everything else.
|
|
179
179
|
return this.body.toString();
|
|
180
|
-
}
|
|
180
|
+
}
|
|
181
181
|
/**
|
|
182
182
|
* Examine the body and attempt to infer an appropriate MIME type
|
|
183
183
|
* for it.
|
|
184
184
|
*
|
|
185
185
|
* If no such type can be inferred, this method will return `null`.
|
|
186
186
|
*/
|
|
187
|
-
|
|
187
|
+
detectContentTypeHeader() {
|
|
188
188
|
// An empty body has no content type.
|
|
189
189
|
if (this.body === null) {
|
|
190
190
|
return null;
|
|
@@ -218,50 +218,44 @@ var HttpRequest = /** @class */ (function () {
|
|
|
218
218
|
}
|
|
219
219
|
// No type could be inferred.
|
|
220
220
|
return null;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (update === void 0) { update = {}; }
|
|
221
|
+
}
|
|
222
|
+
clone(update = {}) {
|
|
224
223
|
// For method, url, and responseType, take the current value unless
|
|
225
224
|
// it is overridden in the update hash.
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
const method = update.method || this.method;
|
|
226
|
+
const url = update.url || this.url;
|
|
227
|
+
const responseType = update.responseType || this.responseType;
|
|
229
228
|
// The body is somewhat special - a `null` value in update.body means
|
|
230
229
|
// whatever current body is present is being overridden with an empty
|
|
231
230
|
// body, whereas an `undefined` value in update.body implies no
|
|
232
231
|
// override.
|
|
233
|
-
|
|
232
|
+
const body = (update.body !== undefined) ? update.body : this.body;
|
|
234
233
|
// Carefully handle the boolean options to differentiate between
|
|
235
234
|
// `false` and `undefined` in the update args.
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;
|
|
236
|
+
const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;
|
|
238
237
|
// Headers and params may be appended to if `setHeaders` or
|
|
239
238
|
// `setParams` are used.
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
let headers = update.headers || this.headers;
|
|
240
|
+
let params = update.params || this.params;
|
|
242
241
|
// Check whether the caller has asked to add headers.
|
|
243
242
|
if (update.setHeaders !== undefined) {
|
|
244
243
|
// Set every requested header.
|
|
245
244
|
headers =
|
|
246
245
|
Object.keys(update.setHeaders)
|
|
247
|
-
.reduce(
|
|
246
|
+
.reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);
|
|
248
247
|
}
|
|
249
248
|
// Check whether the caller has asked to set params.
|
|
250
249
|
if (update.setParams) {
|
|
251
250
|
// Set every requested param.
|
|
252
251
|
params = Object.keys(update.setParams)
|
|
253
|
-
.reduce(
|
|
252
|
+
.reduce((params, param) => params.set(param, update.setParams[param]), params);
|
|
254
253
|
}
|
|
255
254
|
// Finally, construct the new HttpRequest using the pieces from above.
|
|
256
255
|
return new HttpRequest(method, url, body, {
|
|
257
|
-
params
|
|
258
|
-
headers: headers,
|
|
259
|
-
reportProgress: reportProgress,
|
|
260
|
-
responseType: responseType,
|
|
261
|
-
withCredentials: withCredentials,
|
|
256
|
+
params, headers, reportProgress, responseType, withCredentials,
|
|
262
257
|
});
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
}());
|
|
258
|
+
}
|
|
259
|
+
}
|
|
266
260
|
exports.HttpRequest = HttpRequest;
|
|
267
261
|
//# sourceMappingURL=request.js.map
|
package/dist/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/response.js
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.HttpErrorResponse = exports.HttpResponse = exports.HttpHeaderResponse = exports.HttpResponseBase = exports.HttpEventType = void 0;
|
|
11
|
-
|
|
12
|
-
var headers_1 = require("./headers");
|
|
11
|
+
const headers_1 = require("./headers");
|
|
13
12
|
/**
|
|
14
13
|
* Type enumeration for the different kinds of `HttpEvent`.
|
|
15
14
|
*
|
|
@@ -47,16 +46,14 @@ var HttpEventType;
|
|
|
47
46
|
*
|
|
48
47
|
*
|
|
49
48
|
*/
|
|
50
|
-
|
|
49
|
+
class HttpResponseBase {
|
|
51
50
|
/**
|
|
52
51
|
* Super-constructor for all responses.
|
|
53
52
|
*
|
|
54
53
|
* The single parameter accepted is an initialization hash. Any properties
|
|
55
54
|
* of the response passed there will override the default values.
|
|
56
55
|
*/
|
|
57
|
-
|
|
58
|
-
if (defaultStatus === void 0) { defaultStatus = 200; }
|
|
59
|
-
if (defaultStatusText === void 0) { defaultStatusText = 'OK'; }
|
|
56
|
+
constructor(init, defaultStatus = 200, defaultStatusText = 'OK') {
|
|
60
57
|
// If the hash has values passed, use them to initialize the response.
|
|
61
58
|
// Otherwise use the default values.
|
|
62
59
|
this.headers = init.headers || new headers_1.HttpHeaders();
|
|
@@ -66,8 +63,7 @@ var HttpResponseBase = /** @class */ (function () {
|
|
|
66
63
|
// Cache the ok value to avoid defining a getter.
|
|
67
64
|
this.ok = this.status >= 200 && this.status < 300;
|
|
68
65
|
}
|
|
69
|
-
|
|
70
|
-
}());
|
|
66
|
+
}
|
|
71
67
|
exports.HttpResponseBase = HttpResponseBase;
|
|
72
68
|
/**
|
|
73
69
|
* A partial HTTP response which only includes the status and header data,
|
|
@@ -78,23 +74,19 @@ exports.HttpResponseBase = HttpResponseBase;
|
|
|
78
74
|
*
|
|
79
75
|
*
|
|
80
76
|
*/
|
|
81
|
-
|
|
82
|
-
(0, tslib_1.__extends)(HttpHeaderResponse, _super);
|
|
77
|
+
class HttpHeaderResponse extends HttpResponseBase {
|
|
83
78
|
/**
|
|
84
79
|
* Create a new `HttpHeaderResponse` with the given parameters.
|
|
85
80
|
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
_this.type = HttpEventType.ResponseHeader;
|
|
90
|
-
return _this;
|
|
81
|
+
constructor(init = {}) {
|
|
82
|
+
super(init);
|
|
83
|
+
this.type = HttpEventType.ResponseHeader;
|
|
91
84
|
}
|
|
92
85
|
/**
|
|
93
86
|
* Copy this `HttpHeaderResponse`, overriding its contents with the
|
|
94
87
|
* given parameter hash.
|
|
95
88
|
*/
|
|
96
|
-
|
|
97
|
-
if (update === void 0) { update = {}; }
|
|
89
|
+
clone(update = {}) {
|
|
98
90
|
// Perform a straightforward initialization of the new HttpHeaderResponse,
|
|
99
91
|
// overriding the current parameters with new ones if given.
|
|
100
92
|
return new HttpHeaderResponse({
|
|
@@ -103,9 +95,8 @@ var HttpHeaderResponse = /** @class */ (function (_super) {
|
|
|
103
95
|
statusText: update.statusText || this.statusText,
|
|
104
96
|
url: update.url || this.url || undefined,
|
|
105
97
|
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}(HttpResponseBase));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
109
100
|
exports.HttpHeaderResponse = HttpHeaderResponse;
|
|
110
101
|
/**
|
|
111
102
|
* A full HTTP response, including a typed response body (which may be `null`
|
|
@@ -116,20 +107,16 @@ exports.HttpHeaderResponse = HttpHeaderResponse;
|
|
|
116
107
|
*
|
|
117
108
|
*
|
|
118
109
|
*/
|
|
119
|
-
|
|
120
|
-
(0, tslib_1.__extends)(HttpResponse, _super);
|
|
110
|
+
class HttpResponse extends HttpResponseBase {
|
|
121
111
|
/**
|
|
122
112
|
* Construct a new `HttpResponse`.
|
|
123
113
|
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
_this.body = init.body !== undefined ? init.body : null;
|
|
129
|
-
return _this;
|
|
114
|
+
constructor(init = {}) {
|
|
115
|
+
super(init);
|
|
116
|
+
this.type = HttpEventType.Response;
|
|
117
|
+
this.body = init.body !== undefined ? init.body : null;
|
|
130
118
|
}
|
|
131
|
-
|
|
132
|
-
if (update === void 0) { update = {}; }
|
|
119
|
+
clone(update = {}) {
|
|
133
120
|
return new HttpResponse({
|
|
134
121
|
body: (update.body !== undefined) ? update.body : this.body,
|
|
135
122
|
headers: update.headers || this.headers,
|
|
@@ -137,9 +124,8 @@ var HttpResponse = /** @class */ (function (_super) {
|
|
|
137
124
|
statusText: update.statusText || this.statusText,
|
|
138
125
|
url: update.url || this.url || undefined,
|
|
139
126
|
});
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
}(HttpResponseBase));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
143
129
|
exports.HttpResponse = HttpResponse;
|
|
144
130
|
/**
|
|
145
131
|
* A response that represents an error or failure, either from a
|
|
@@ -154,31 +140,27 @@ exports.HttpResponse = HttpResponse;
|
|
|
154
140
|
*
|
|
155
141
|
*
|
|
156
142
|
*/
|
|
157
|
-
|
|
158
|
-
(
|
|
159
|
-
function HttpErrorResponse(init) {
|
|
160
|
-
var _this =
|
|
143
|
+
class HttpErrorResponse extends HttpResponseBase {
|
|
144
|
+
constructor(init) {
|
|
161
145
|
// Initialize with a default status of 0 / Unknown Error.
|
|
162
|
-
|
|
163
|
-
|
|
146
|
+
super(init, 0, 'Unknown Error');
|
|
147
|
+
this.name = 'HttpErrorResponse';
|
|
164
148
|
/**
|
|
165
149
|
* Errors are never okay, even when the status code is in the 2xx success range.
|
|
166
150
|
*/
|
|
167
|
-
|
|
151
|
+
this.ok = false;
|
|
168
152
|
// If the response was successful, then this was a parse error. Otherwise, it was
|
|
169
153
|
// a protocol-level failure of some sort. Either the request failed in transit
|
|
170
154
|
// or the server returned an unsuccessful status code.
|
|
171
|
-
if (
|
|
172
|
-
|
|
155
|
+
if (this.status >= 200 && this.status < 300) {
|
|
156
|
+
this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;
|
|
173
157
|
}
|
|
174
158
|
else {
|
|
175
|
-
|
|
176
|
-
|
|
159
|
+
this.message =
|
|
160
|
+
`Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;
|
|
177
161
|
}
|
|
178
|
-
|
|
179
|
-
return _this;
|
|
162
|
+
this.error = init.error || null;
|
|
180
163
|
}
|
|
181
|
-
|
|
182
|
-
}(HttpResponseBase));
|
|
164
|
+
}
|
|
183
165
|
exports.HttpErrorResponse = HttpErrorResponse;
|
|
184
166
|
//# sourceMappingURL=response.js.map
|
package/dist/response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -8,52 +8,46 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.SERVER_HTTP_PROVIDERS = exports.zoneWrappedInterceptingHandler = exports.ZoneClientBackend = exports.ZoneMacroTaskWrapper = exports.ServerXhr = void 0;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
const tslib_1 = require("tslib");
|
|
12
|
+
const xhr2 = (0, tslib_1.__importStar)(require("xhr2"));
|
|
13
|
+
const di_1 = require("@alterior/di");
|
|
14
|
+
const rxjs_1 = require("rxjs");
|
|
15
|
+
const backend_1 = require("./backend");
|
|
16
|
+
const xhr_1 = require("./xhr");
|
|
17
|
+
const module_1 = require("./module");
|
|
18
|
+
const isAbsoluteUrl = /^[a-zA-Z\-\+.]+:\/\//;
|
|
19
19
|
function validateRequestUrl(url) {
|
|
20
20
|
if (!isAbsoluteUrl.test(url)) {
|
|
21
|
-
throw new Error(
|
|
21
|
+
throw new Error(`URLs requested via Http on the server must be absolute. URL: ${url}`);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
], ServerXhr);
|
|
31
|
-
return ServerXhr;
|
|
32
|
-
}());
|
|
24
|
+
let ServerXhr = class ServerXhr {
|
|
25
|
+
build() { return new xhr2.XMLHttpRequest(); }
|
|
26
|
+
};
|
|
27
|
+
ServerXhr = (0, tslib_1.__decorate)([
|
|
28
|
+
(0, di_1.Injectable)()
|
|
29
|
+
], ServerXhr);
|
|
33
30
|
exports.ServerXhr = ServerXhr;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var savedResult = null;
|
|
44
|
-
var savedError = null;
|
|
45
|
-
var scheduleTask = function (_task) {
|
|
31
|
+
class ZoneMacroTaskWrapper {
|
|
32
|
+
wrap(request) {
|
|
33
|
+
return new rxjs_1.Observable((observer) => {
|
|
34
|
+
let task = null;
|
|
35
|
+
let scheduled = false;
|
|
36
|
+
let sub = null;
|
|
37
|
+
let savedResult = null;
|
|
38
|
+
let savedError = null;
|
|
39
|
+
const scheduleTask = (_task) => {
|
|
46
40
|
task = _task;
|
|
47
41
|
scheduled = true;
|
|
48
|
-
|
|
49
|
-
sub = delegate.subscribe(
|
|
42
|
+
const delegate = this.delegate(request);
|
|
43
|
+
sub = delegate.subscribe(res => savedResult = res, err => {
|
|
50
44
|
if (!scheduled) {
|
|
51
45
|
throw new Error('An http observable was completed twice. This shouldn\'t happen, please file a bug.');
|
|
52
46
|
}
|
|
53
47
|
savedError = err;
|
|
54
48
|
scheduled = false;
|
|
55
49
|
task.invoke();
|
|
56
|
-
},
|
|
50
|
+
}, () => {
|
|
57
51
|
if (!scheduled) {
|
|
58
52
|
throw new Error('An http observable was completed twice. This shouldn\'t happen, please file a bug.');
|
|
59
53
|
}
|
|
@@ -61,7 +55,7 @@ var ZoneMacroTaskWrapper = /** @class */ (function () {
|
|
|
61
55
|
task.invoke();
|
|
62
56
|
});
|
|
63
57
|
};
|
|
64
|
-
|
|
58
|
+
const cancelTask = (_task) => {
|
|
65
59
|
if (!scheduled) {
|
|
66
60
|
return;
|
|
67
61
|
}
|
|
@@ -71,7 +65,7 @@ var ZoneMacroTaskWrapper = /** @class */ (function () {
|
|
|
71
65
|
sub = null;
|
|
72
66
|
}
|
|
73
67
|
};
|
|
74
|
-
|
|
68
|
+
const onComplete = () => {
|
|
75
69
|
if (savedError !== null) {
|
|
76
70
|
observer.error(savedError);
|
|
77
71
|
}
|
|
@@ -83,9 +77,9 @@ var ZoneMacroTaskWrapper = /** @class */ (function () {
|
|
|
83
77
|
// MockBackend for Http is synchronous, which means that if scheduleTask is by
|
|
84
78
|
// scheduleMacroTask, the request will hit MockBackend and the response will be
|
|
85
79
|
// sent, causing task.invoke() to be called.
|
|
86
|
-
|
|
80
|
+
const _task = Zone.current.scheduleMacroTask('ZoneMacroTaskWrapper.subscribe', onComplete, {}, () => null, cancelTask);
|
|
87
81
|
scheduleTask(_task);
|
|
88
|
-
return
|
|
82
|
+
return () => {
|
|
89
83
|
if (scheduled && task) {
|
|
90
84
|
task.zone.cancelTask(task);
|
|
91
85
|
scheduled = false;
|
|
@@ -96,26 +90,22 @@ var ZoneMacroTaskWrapper = /** @class */ (function () {
|
|
|
96
90
|
}
|
|
97
91
|
};
|
|
98
92
|
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
}());
|
|
93
|
+
}
|
|
94
|
+
}
|
|
102
95
|
exports.ZoneMacroTaskWrapper = ZoneMacroTaskWrapper;
|
|
103
|
-
|
|
104
|
-
(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
_this.backend = backend;
|
|
108
|
-
return _this;
|
|
96
|
+
class ZoneClientBackend extends ZoneMacroTaskWrapper {
|
|
97
|
+
constructor(backend) {
|
|
98
|
+
super();
|
|
99
|
+
this.backend = backend;
|
|
109
100
|
}
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
handle(request) { return this.wrap(request); }
|
|
102
|
+
delegate(request) {
|
|
112
103
|
return this.backend.handle(request);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}(ZoneMacroTaskWrapper));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
116
106
|
exports.ZoneClientBackend = ZoneClientBackend;
|
|
117
107
|
function zoneWrappedInterceptingHandler(backend, injector) {
|
|
118
|
-
|
|
108
|
+
const realBackend = new module_1.HttpInterceptingHandler(backend, injector);
|
|
119
109
|
return new ZoneClientBackend(realBackend);
|
|
120
110
|
}
|
|
121
111
|
exports.zoneWrappedInterceptingHandler = zoneWrappedInterceptingHandler;
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|