@mswjs/interceptors 0.13.5 → 0.14.1
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/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +1 -1
- package/lib/interceptors/ClientRequest/NodeClientRequest.js +97 -106
- package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +1 -1
- package/lib/interceptors/ClientRequest/http.request.js +1 -1
- package/lib/interceptors/ClientRequest/http.request.js.map +1 -1
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.d.ts +3 -0
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js +46 -23
- package/lib/interceptors/ClientRequest/utils/cloneIncomingMessage.js.map +1 -1
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js +14 -0
- package/lib/interceptors/ClientRequest/utils/normalizeClientRequestArgs.js.map +1 -1
- package/lib/remote.js.map +1 -1
- package/package.json +9 -7
- package/src/interceptors/ClientRequest/NodeClientRequest.ts +89 -84
- package/src/interceptors/ClientRequest/http.request.ts +1 -1
- package/src/interceptors/ClientRequest/utils/cloneIncomingMessage.test.ts +12 -7
- package/src/interceptors/ClientRequest/utils/cloneIncomingMessage.ts +54 -21
- package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.test.ts +43 -7
- package/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts +29 -2
- package/src/remote.ts +4 -6
|
@@ -26,7 +26,7 @@ export declare class NodeClientRequest extends ClientRequest {
|
|
|
26
26
|
requestBody: Buffer[];
|
|
27
27
|
constructor([url, requestOptions, callback]: NormalizedClientRequestArgs, options: NodeClientOptions);
|
|
28
28
|
write(...args: ClientRequestWriteArgs): boolean;
|
|
29
|
-
end(...args: any):
|
|
29
|
+
end(...args: any): this;
|
|
30
30
|
emit(event: string, ...data: any[]): boolean;
|
|
31
31
|
private respondWith;
|
|
32
32
|
/**
|
|
@@ -147,119 +147,110 @@ var NodeClientRequest = /** @class */ (function (_super) {
|
|
|
147
147
|
return true;
|
|
148
148
|
};
|
|
149
149
|
NodeClientRequest.prototype.end = function () {
|
|
150
|
+
var _this = this;
|
|
150
151
|
var args = [];
|
|
151
152
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
152
153
|
args[_i] = arguments[_i];
|
|
153
154
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
// in order to prevent the Socket to communicate with a potentially
|
|
208
|
-
// existing server.
|
|
209
|
-
this.log('writing request chunks...', this.chunks);
|
|
210
|
-
try {
|
|
211
|
-
for (_c = __values(this.chunks), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
212
|
-
_e = _d.value, chunk_1 = _e.chunk, encoding_1 = _e.encoding, callback_1 = _e.callback;
|
|
213
|
-
encoding_1
|
|
214
|
-
? _super.prototype.write.call(this, chunk_1, encoding_1, callback_1)
|
|
215
|
-
: _super.prototype.write.call(this, chunk_1, callback_1);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
219
|
-
finally {
|
|
220
|
-
try {
|
|
221
|
-
if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
|
|
222
|
-
}
|
|
223
|
-
finally { if (e_1) throw e_1.error; }
|
|
224
|
-
}
|
|
225
|
-
this.once('error', function (error) {
|
|
226
|
-
_this.log('original request error:', error);
|
|
227
|
-
});
|
|
228
|
-
this.once('abort', function () {
|
|
229
|
-
_this.log('original request aborted!');
|
|
230
|
-
});
|
|
231
|
-
this.once('response-internal', function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
232
|
-
var responseBody;
|
|
233
|
-
return __generator(this, function (_a) {
|
|
234
|
-
switch (_a.label) {
|
|
235
|
-
case 0: return [4 /*yield*/, getIncomingMessageBody_1.getIncomingMessageBody(response)];
|
|
236
|
-
case 1:
|
|
237
|
-
responseBody = _a.sent();
|
|
238
|
-
this.log(response.statusCode, response.statusMessage, responseBody);
|
|
239
|
-
this.log('original response headers:', response.headers);
|
|
240
|
-
this.log('emitting the custom "response" event...');
|
|
241
|
-
this.observer.emit('response', isomorphicRequest, {
|
|
242
|
-
status: response.statusCode || 200,
|
|
243
|
-
statusText: response.statusMessage || 'OK',
|
|
244
|
-
headers: lib_1.objectToHeaders(response.headers),
|
|
245
|
-
body: responseBody,
|
|
246
|
-
});
|
|
247
|
-
return [2 /*return*/];
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
}); });
|
|
251
|
-
this.log('performing original request...');
|
|
252
|
-
return [2 /*return*/, _super.prototype.end.apply(this, __spreadArray([], __read([
|
|
253
|
-
chunk,
|
|
254
|
-
encoding,
|
|
255
|
-
function () {
|
|
256
|
-
_this.log('original request end!');
|
|
257
|
-
callback === null || callback === void 0 ? void 0 : callback();
|
|
258
|
-
},
|
|
259
|
-
].filter(Boolean))))];
|
|
155
|
+
this.log('end', args);
|
|
156
|
+
var _a = __read(normalizeClientRequestEndArgs_1.normalizeClientRequestEndArgs.apply(void 0, __spreadArray([], __read(args))), 3), chunk = _a[0], encoding = _a[1], callback = _a[2];
|
|
157
|
+
this.log('normalized arguments:', { chunk: chunk, encoding: encoding, callback: callback });
|
|
158
|
+
var requestBody = this.getRequestBody(chunk);
|
|
159
|
+
var isomorphicRequest = this.toIsomorphicRequest(requestBody);
|
|
160
|
+
this.observer.emit('request', isomorphicRequest);
|
|
161
|
+
this.log('executing response resolver...');
|
|
162
|
+
// Execute the resolver Promise like a side-effect.
|
|
163
|
+
// Node.js 16 forces "ClientRequest.end" to be synchronous and return "this".
|
|
164
|
+
until_1.until(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
165
|
+
return [2 /*return*/, this.resolver(isomorphicRequest, this.response)];
|
|
166
|
+
}); }); }).then(function (_a) {
|
|
167
|
+
var e_1, _b;
|
|
168
|
+
var _c = __read(_a, 2), resolverException = _c[0], mockedResponse = _c[1];
|
|
169
|
+
// Halt the request whenever the resolver throws an exception.
|
|
170
|
+
if (resolverException) {
|
|
171
|
+
_this.log('encountered resolver exception, aborting request...', resolverException);
|
|
172
|
+
_this.emit('error', resolverException);
|
|
173
|
+
_this.terminate();
|
|
174
|
+
return _this;
|
|
175
|
+
}
|
|
176
|
+
if (mockedResponse) {
|
|
177
|
+
_this.log('received mocked response:', mockedResponse);
|
|
178
|
+
_this.responseSource = 'mock';
|
|
179
|
+
var isomorphicResponse = toIsoResponse_1.toIsoResponse(mockedResponse);
|
|
180
|
+
_this.respondWith(mockedResponse);
|
|
181
|
+
_this.log(isomorphicResponse.status, isomorphicResponse.statusText, isomorphicResponse.body, '(MOCKED)');
|
|
182
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
183
|
+
_this.log('emitting the custom "response" event...');
|
|
184
|
+
_this.observer.emit('response', isomorphicRequest, isomorphicResponse);
|
|
185
|
+
return _this;
|
|
186
|
+
}
|
|
187
|
+
_this.log('no mocked response found!');
|
|
188
|
+
// Set the response source to "bypass".
|
|
189
|
+
// Any errors emitted past this point are not suppressed.
|
|
190
|
+
_this.responseSource = 'bypass';
|
|
191
|
+
// Propagate previously captured errors.
|
|
192
|
+
// For example, a ECONNREFUSED error when connecting to a non-existing host.
|
|
193
|
+
if (_this.capturedError) {
|
|
194
|
+
_this.emit('error', _this.capturedError);
|
|
195
|
+
return _this;
|
|
196
|
+
}
|
|
197
|
+
// Write the request body chunks in the order of ".write()" calls.
|
|
198
|
+
// Note that no request body has been written prior to this point
|
|
199
|
+
// in order to prevent the Socket to communicate with a potentially
|
|
200
|
+
// existing server.
|
|
201
|
+
_this.log('writing request chunks...', _this.chunks);
|
|
202
|
+
try {
|
|
203
|
+
for (var _d = __values(_this.chunks), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
204
|
+
var _f = _e.value, chunk_1 = _f.chunk, encoding_1 = _f.encoding, callback_1 = _f.callback;
|
|
205
|
+
encoding_1
|
|
206
|
+
? _super.prototype.write.call(_this, chunk_1, encoding_1, callback_1)
|
|
207
|
+
: _super.prototype.write.call(_this, chunk_1, callback_1);
|
|
260
208
|
}
|
|
209
|
+
}
|
|
210
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
211
|
+
finally {
|
|
212
|
+
try {
|
|
213
|
+
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
214
|
+
}
|
|
215
|
+
finally { if (e_1) throw e_1.error; }
|
|
216
|
+
}
|
|
217
|
+
_this.once('error', function (error) {
|
|
218
|
+
_this.log('original request error:', error);
|
|
261
219
|
});
|
|
220
|
+
_this.once('abort', function () {
|
|
221
|
+
_this.log('original request aborted!');
|
|
222
|
+
});
|
|
223
|
+
_this.once('response-internal', function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
224
|
+
var responseBody;
|
|
225
|
+
return __generator(this, function (_a) {
|
|
226
|
+
switch (_a.label) {
|
|
227
|
+
case 0: return [4 /*yield*/, getIncomingMessageBody_1.getIncomingMessageBody(response)];
|
|
228
|
+
case 1:
|
|
229
|
+
responseBody = _a.sent();
|
|
230
|
+
this.log(response.statusCode, response.statusMessage, responseBody);
|
|
231
|
+
this.log('original response headers:', response.headers);
|
|
232
|
+
this.log('emitting the custom "response" event...');
|
|
233
|
+
this.observer.emit('response', isomorphicRequest, {
|
|
234
|
+
status: response.statusCode || 200,
|
|
235
|
+
statusText: response.statusMessage || 'OK',
|
|
236
|
+
headers: lib_1.objectToHeaders(response.headers),
|
|
237
|
+
body: responseBody,
|
|
238
|
+
});
|
|
239
|
+
return [2 /*return*/];
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}); });
|
|
243
|
+
_this.log('performing original request...');
|
|
244
|
+
return _super.prototype.end.apply(_this, __spreadArray([], __read([
|
|
245
|
+
chunk,
|
|
246
|
+
encoding,
|
|
247
|
+
function () {
|
|
248
|
+
_this.log('original request end!');
|
|
249
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
250
|
+
},
|
|
251
|
+
].filter(Boolean))));
|
|
262
252
|
});
|
|
253
|
+
return this;
|
|
263
254
|
};
|
|
264
255
|
NodeClientRequest.prototype.emit = function (event) {
|
|
265
256
|
var data = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeClientRequest.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/NodeClientRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAuC;AAEvC,6BAAqD;AACrD,2CAAyC;AACzC,4CAA+D;AAO/D,yCAAyC;AACzC,mEAAiE;AACjE,uFAG8C;AAE9C,2DAAyD;AACzD,yEAAuE;AACvE,iEAA+D;AAC/D,2FAIgD;AAChD,qEAAmE;AASnE;IAAuC,qCAAa;IAuBlD,2BACE,EAA4D,EAC5D,OAA0B;YAD1B,KAAA,aAA4D,EAA3D,GAAG,QAAA,EAAE,cAAc,QAAA,EAAE,QAAQ,QAAA;QADhC,YAIE,kBAAM,cAAc,EAAE,QAAQ,CAAC,SAgBhC;QA9BO,YAAM,GAIT,EAAE,CAAA;QACC,oBAAc,GAAsB,MAAM,CAAA;QAG3C,iBAAW,GAAa,EAAE,CAAA;QAQ/B,KAAI,CAAC,GAAG,GAAG,aAAK,CAAC,UAAQ,cAAc,CAAC,MAAM,SAAI,GAAG,CAAC,IAAM,CAAC,CAAA;QAC7D,KAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE;YACxC,GAAG,KAAA;YACH,cAAc,gBAAA;YACd,QAAQ,UAAA;SACT,CAAC,CAAA;QAEF,KAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,KAAI,CAAC,OAAO,GAAG,cAAc,CAAA;QAC7B,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAEhC,uCAAuC;QACvC,KAAI,CAAC,QAAQ,GAAG,IAAI,sBAAe,CAAC,KAAI,CAAC,MAAO,CAAC,CAAA;;IACnD,CAAC;IAED,iCAAK,GAAL;QAAA,iBAyBC;QAzBK,cAA+B;aAA/B,UAA+B,EAA/B,qBAA+B,EAA/B,IAA+B;YAA/B,yBAA+B;;QAC7B,IAAA,KAAA,OAA8B,iEAA+B,CAAC,IAAI,CAAC,IAAA,EAAlE,KAAK,QAAA,EAAE,QAAQ,QAAA,EAAE,QAAQ,QAAyC,CAAA;QACzE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,KAAK,OAAA;YACL,QAAQ,UAAA;YACR,QAAQ,EAAE,UAAC,KAAoB;gBAC7B,IAAI,KAAK,EAAE;oBACT,KAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;iBAC9C;qBAAM;oBACL,KAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;iBAChD;gBAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,CAAA;YACnB,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,yCAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAE/D,kDAAkD;QAClD,yDAAyD;QACzD,kDAAkD;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeClientRequest.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/NodeClientRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ function request(protocol, resolver, observer) {
|
|
|
32
32
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
33
33
|
args[_i] = arguments[_i];
|
|
34
34
|
}
|
|
35
|
-
log('
|
|
35
|
+
log('request call (protocol "%s"):', protocol, args);
|
|
36
36
|
var clientRequestArgs = normalizeClientRequestArgs_1.normalizeClientRequestArgs.apply(void 0, __spreadArray([protocol + ":"], __read(args)));
|
|
37
37
|
return new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, {
|
|
38
38
|
observer: observer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.request.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAG7B,yDAAiE;AACjE,iFAG2C;AAE3C,IAAM,GAAG,GAAG,aAAK,CAAC,cAAc,CAAC,CAAA;AAEjC,SAAgB,OAAO,CACrB,QAAkB,EAClB,QAAkB,EAClB,QAAkB;IAElB,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"http.request.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAG7B,yDAAiE;AACjE,iFAG2C;AAE3C,IAAM,GAAG,GAAG,aAAK,CAAC,cAAc,CAAC,CAAA;AAEjC,SAAgB,OAAO,CACrB,QAAkB,EAClB,QAAkB,EAClB,QAAkB;IAElB,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAEpD,IAAM,iBAAiB,GAAG,uDAA0B,8BAC/C,QAAQ,MAAG,UACX,IAAI,GACR,CAAA;QACD,OAAO,IAAI,qCAAiB,CAAC,iBAAiB,EAAE;YAC9C,QAAQ,UAAA;YACR,QAAQ,UAAA;SACT,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAjBD,0BAiBC"}
|
|
@@ -4,4 +4,7 @@ export declare const IS_CLONE: unique symbol;
|
|
|
4
4
|
export interface ClonedIncomingMessage extends IncomingMessage {
|
|
5
5
|
[IS_CLONE]: boolean;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Clones a given `http.IncomingMessage` instance.
|
|
9
|
+
*/
|
|
7
10
|
export declare function cloneIncomingMessage(message: IncomingMessage): ClonedIncomingMessage;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __read = (this && this.__read) || function (o, n) {
|
|
14
3
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
4
|
if (!m) return o;
|
|
@@ -44,20 +33,60 @@ var __values = (this && this.__values) || function(o) {
|
|
|
44
33
|
};
|
|
45
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
35
|
exports.cloneIncomingMessage = exports.IS_CLONE = void 0;
|
|
36
|
+
var http_1 = require("http");
|
|
47
37
|
var stream_1 = require("stream");
|
|
48
38
|
exports.IS_CLONE = Symbol('isClone');
|
|
39
|
+
/**
|
|
40
|
+
* Clones a given `http.IncomingMessage` instance.
|
|
41
|
+
*/
|
|
49
42
|
function cloneIncomingMessage(message) {
|
|
43
|
+
var clone = message.pipe(new stream_1.PassThrough());
|
|
44
|
+
// Inherit all direct "IncomingMessage" properties.
|
|
45
|
+
inheritProperties(message, clone);
|
|
46
|
+
// Deeply inherit the message prototypes (Readable, Stream, EventEmitter, etc.).
|
|
47
|
+
var clonedPrototype = Object.create(http_1.IncomingMessage.prototype);
|
|
48
|
+
getPrototypes(clone).forEach(function (prototype) {
|
|
49
|
+
inheritProperties(prototype, clonedPrototype);
|
|
50
|
+
});
|
|
51
|
+
Object.setPrototypeOf(clone, clonedPrototype);
|
|
52
|
+
Object.defineProperty(clone, exports.IS_CLONE, {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
value: true,
|
|
55
|
+
});
|
|
56
|
+
return clone;
|
|
57
|
+
}
|
|
58
|
+
exports.cloneIncomingMessage = cloneIncomingMessage;
|
|
59
|
+
/**
|
|
60
|
+
* Returns a list of all prototypes the given object extends.
|
|
61
|
+
*/
|
|
62
|
+
function getPrototypes(source) {
|
|
63
|
+
var prototypes = [];
|
|
64
|
+
var current = source;
|
|
65
|
+
while ((current = Object.getPrototypeOf(current))) {
|
|
66
|
+
prototypes.push(current);
|
|
67
|
+
}
|
|
68
|
+
return prototypes;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Inherits a given target object properties and symbols
|
|
72
|
+
* onto the given source object.
|
|
73
|
+
* @param source Object which should acquire properties.
|
|
74
|
+
* @param target Object to inherit the properties from.
|
|
75
|
+
*/
|
|
76
|
+
function inheritProperties(source, target) {
|
|
50
77
|
var e_1, _a;
|
|
51
|
-
var
|
|
52
|
-
var properties = __spreadArray(__spreadArray([], __read(Object.getOwnPropertyNames(message))), __read(Object.getOwnPropertySymbols(message)));
|
|
78
|
+
var properties = __spreadArray(__spreadArray([], __read(Object.getOwnPropertyNames(source))), __read(Object.getOwnPropertySymbols(source)));
|
|
53
79
|
try {
|
|
54
80
|
for (var properties_1 = __values(properties), properties_1_1 = properties_1.next(); !properties_1_1.done; properties_1_1 = properties_1.next()) {
|
|
55
|
-
var
|
|
56
|
-
if (
|
|
81
|
+
var property = properties_1_1.value;
|
|
82
|
+
if (target.hasOwnProperty(property)) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
var descriptor = Object.getOwnPropertyDescriptor(source, property);
|
|
86
|
+
if (!descriptor) {
|
|
57
87
|
continue;
|
|
58
88
|
}
|
|
59
|
-
|
|
60
|
-
Object.defineProperty(stream, propertyName, __assign(__assign({}, propertyDescriptor), { value: message[propertyName] }));
|
|
89
|
+
Object.defineProperty(target, property, descriptor);
|
|
61
90
|
}
|
|
62
91
|
}
|
|
63
92
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -67,11 +96,5 @@ function cloneIncomingMessage(message) {
|
|
|
67
96
|
}
|
|
68
97
|
finally { if (e_1) throw e_1.error; }
|
|
69
98
|
}
|
|
70
|
-
Object.defineProperty(stream, exports.IS_CLONE, {
|
|
71
|
-
enumerable: true,
|
|
72
|
-
value: true,
|
|
73
|
-
});
|
|
74
|
-
return stream;
|
|
75
99
|
}
|
|
76
|
-
exports.cloneIncomingMessage = cloneIncomingMessage;
|
|
77
100
|
//# sourceMappingURL=cloneIncomingMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloneIncomingMessage.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/cloneIncomingMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloneIncomingMessage.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/cloneIncomingMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAsC;AACtC,iCAAoC;AAEvB,QAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAMzC;;GAEG;AACH,SAAgB,oBAAoB,CAClC,OAAwB;IAExB,IAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,oBAAW,EAAE,CAAC,CAAA;IAE7C,mDAAmD;IACnD,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEjC,gFAAgF;IAChF,IAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAe,CAAC,SAAS,CAAC,CAAA;IAChE,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS;QACrC,iBAAiB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IAE7C,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAQ,EAAE;QACrC,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,KAAyC,CAAA;AAClD,CAAC;AArBD,oDAqBC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,IAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAO,GAAG,MAAM,CAAA;IAEpB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE;QACjD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACzB;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,MAAc;;IACvD,IAAM,UAAU,0CACX,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAClC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EACxC,CAAA;;QAED,KAAuB,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAA9B,IAAM,QAAQ,uBAAA;YACjB,IAAI,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACnC,SAAQ;aACT;YAED,IAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACpE,IAAI,CAAC,UAAU,EAAE;gBACf,SAAQ;aACT;YAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;SACpD;;;;;;;;;AACH,CAAC"}
|
|
@@ -160,8 +160,22 @@ function normalizeClientRequestArgs(defaultProtocol) {
|
|
|
160
160
|
options.agent = agent;
|
|
161
161
|
log('resolved fallback agent:', agent);
|
|
162
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Ensure that the default Agent is always set.
|
|
165
|
+
* This prevents the protocol mismatch for requests with { agent: false },
|
|
166
|
+
* where the global Agent is inferred.
|
|
167
|
+
* @see https://github.com/mswjs/msw/issues/1150
|
|
168
|
+
* @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L130
|
|
169
|
+
* @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L157-L159
|
|
170
|
+
*/
|
|
171
|
+
if (!options._defaultAgent) {
|
|
172
|
+
log('has no default agent, setting the default agent for "%s"', options.protocol);
|
|
173
|
+
options._defaultAgent =
|
|
174
|
+
options.protocol === 'https:' ? https_1.globalAgent : http_1.globalAgent;
|
|
175
|
+
}
|
|
163
176
|
log('successfully resolved url:', url.href);
|
|
164
177
|
log('successfully resolved options:', options);
|
|
178
|
+
log('successfully resolved callback:', callback);
|
|
165
179
|
return [url, options, callback];
|
|
166
180
|
}
|
|
167
181
|
exports.normalizeClientRequestArgs = normalizeClientRequestArgs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeClientRequestArgs.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"normalizeClientRequestArgs.js","sourceRoot":"","sources":["../../../../src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts"],"names":[],"mappings":"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"}
|
package/lib/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAA0C;AAC1C,yCAAsC;AACtC,6DAAyD;AACzD,yDAO4B;AAC5B,uDAAqD;
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mswjs/interceptors",
|
|
3
3
|
"description": "Low-level HTTP/HTTPS/XHR/fetch request interception library.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.1",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
7
7
|
"author": "Artem Zakharchenko",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": ">=
|
|
10
|
+
"node": ">=16.x"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"start": "tsc --build -w",
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"clean": "rimraf lib",
|
|
20
20
|
"build": "yarn clean && tsc --build",
|
|
21
21
|
"prepare": "yarn simple-git-hooks init",
|
|
22
|
-
"
|
|
22
|
+
"release": "semantic-release",
|
|
23
|
+
"prepublishOnly": "yarn build && yarn test"
|
|
23
24
|
},
|
|
24
25
|
"files": [
|
|
25
26
|
"lib",
|
|
@@ -36,9 +37,9 @@
|
|
|
36
37
|
"@open-draft/test-server": "^0.2.3",
|
|
37
38
|
"@types/cors": "^2.8.12",
|
|
38
39
|
"@types/express": "^4.17.13",
|
|
39
|
-
"@types/express-rate-limit": "^
|
|
40
|
+
"@types/express-rate-limit": "^6.0.0",
|
|
40
41
|
"@types/jest": "^27.0.3",
|
|
41
|
-
"@types/node": "^
|
|
42
|
+
"@types/node": "^16.11.26",
|
|
42
43
|
"@types/node-fetch": "2.5.12",
|
|
43
44
|
"@types/supertest": "^2.0.11",
|
|
44
45
|
"@types/xmldom": "^0.1.31",
|
|
@@ -47,13 +48,14 @@
|
|
|
47
48
|
"commitizen": "^4.2.4",
|
|
48
49
|
"cors": "^2.8.5",
|
|
49
50
|
"cz-conventional-changelog": "3.3.0",
|
|
50
|
-
"express": "^4.17.
|
|
51
|
-
"express-rate-limit": "^
|
|
51
|
+
"express": "^4.17.3",
|
|
52
|
+
"express-rate-limit": "^6.3.0",
|
|
52
53
|
"got": "^11.8.3",
|
|
53
54
|
"jest": "^27.4.3",
|
|
54
55
|
"node-fetch": "2.6.7",
|
|
55
56
|
"page-with": "^0.5.1",
|
|
56
57
|
"rimraf": "^3.0.2",
|
|
58
|
+
"semantic-release": "^19.0.2",
|
|
57
59
|
"simple-git-hooks": "^2.7.0",
|
|
58
60
|
"superagent": "^6.1.0",
|
|
59
61
|
"supertest": "^6.1.6",
|
|
@@ -105,7 +105,7 @@ export class NodeClientRequest extends ClientRequest {
|
|
|
105
105
|
return true
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
end(...args: any): this {
|
|
109
109
|
this.log('end', args)
|
|
110
110
|
|
|
111
111
|
const [chunk, encoding, callback] = normalizeClientRequestEndArgs(...args)
|
|
@@ -116,101 +116,106 @@ export class NodeClientRequest extends ClientRequest {
|
|
|
116
116
|
this.observer.emit('request', isomorphicRequest)
|
|
117
117
|
|
|
118
118
|
this.log('executing response resolver...')
|
|
119
|
-
const [resolverError, mockedResponse] = await until(async () =>
|
|
120
|
-
this.resolver(isomorphicRequest, this.response)
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
// Halt the request whenever the resolver throws an exception.
|
|
124
|
-
if (resolverError) {
|
|
125
|
-
this.log(
|
|
126
|
-
'encountered resolver exception, aborting request...',
|
|
127
|
-
resolverError
|
|
128
|
-
)
|
|
129
|
-
this.emit('error', resolverError)
|
|
130
|
-
this.terminate()
|
|
131
|
-
|
|
132
|
-
return
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (mockedResponse) {
|
|
136
|
-
this.log('received mocked response:', mockedResponse)
|
|
137
|
-
this.responseSource = 'mock'
|
|
138
|
-
|
|
139
|
-
const isomorphicResponse = toIsoResponse(mockedResponse)
|
|
140
|
-
this.respondWith(mockedResponse)
|
|
141
|
-
this.log(
|
|
142
|
-
isomorphicResponse.status,
|
|
143
|
-
isomorphicResponse.statusText,
|
|
144
|
-
isomorphicResponse.body,
|
|
145
|
-
'(MOCKED)'
|
|
146
|
-
)
|
|
147
119
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
120
|
+
// Execute the resolver Promise like a side-effect.
|
|
121
|
+
// Node.js 16 forces "ClientRequest.end" to be synchronous and return "this".
|
|
122
|
+
until(async () => this.resolver(isomorphicRequest, this.response)).then(
|
|
123
|
+
([resolverException, mockedResponse]) => {
|
|
124
|
+
// Halt the request whenever the resolver throws an exception.
|
|
125
|
+
if (resolverException) {
|
|
126
|
+
this.log(
|
|
127
|
+
'encountered resolver exception, aborting request...',
|
|
128
|
+
resolverException
|
|
129
|
+
)
|
|
130
|
+
this.emit('error', resolverException)
|
|
131
|
+
this.terminate()
|
|
132
|
+
|
|
133
|
+
return this
|
|
134
|
+
}
|
|
152
135
|
|
|
153
|
-
|
|
154
|
-
|
|
136
|
+
if (mockedResponse) {
|
|
137
|
+
this.log('received mocked response:', mockedResponse)
|
|
138
|
+
this.responseSource = 'mock'
|
|
155
139
|
|
|
156
|
-
|
|
140
|
+
const isomorphicResponse = toIsoResponse(mockedResponse)
|
|
141
|
+
this.respondWith(mockedResponse)
|
|
142
|
+
this.log(
|
|
143
|
+
isomorphicResponse.status,
|
|
144
|
+
isomorphicResponse.statusText,
|
|
145
|
+
isomorphicResponse.body,
|
|
146
|
+
'(MOCKED)'
|
|
147
|
+
)
|
|
157
148
|
|
|
158
|
-
|
|
159
|
-
// Any errors emitted past this point are not suppressed.
|
|
160
|
-
this.responseSource = 'bypass'
|
|
149
|
+
callback?.()
|
|
161
150
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (this.capturedError) {
|
|
165
|
-
this.emit('error', this.capturedError)
|
|
166
|
-
return
|
|
167
|
-
}
|
|
151
|
+
this.log('emitting the custom "response" event...')
|
|
152
|
+
this.observer.emit('response', isomorphicRequest, isomorphicResponse)
|
|
168
153
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
// in order to prevent the Socket to communicate with a potentially
|
|
172
|
-
// existing server.
|
|
173
|
-
this.log('writing request chunks...', this.chunks)
|
|
174
|
-
for (const { chunk, encoding, callback } of this.chunks) {
|
|
175
|
-
encoding
|
|
176
|
-
? super.write(chunk, encoding, callback)
|
|
177
|
-
: super.write(chunk, callback)
|
|
178
|
-
}
|
|
154
|
+
return this
|
|
155
|
+
}
|
|
179
156
|
|
|
180
|
-
|
|
181
|
-
this.log('original request error:', error)
|
|
182
|
-
})
|
|
157
|
+
this.log('no mocked response found!')
|
|
183
158
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
159
|
+
// Set the response source to "bypass".
|
|
160
|
+
// Any errors emitted past this point are not suppressed.
|
|
161
|
+
this.responseSource = 'bypass'
|
|
187
162
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
this.observer.emit('response', isomorphicRequest, {
|
|
195
|
-
status: response.statusCode || 200,
|
|
196
|
-
statusText: response.statusMessage || 'OK',
|
|
197
|
-
headers: objectToHeaders(response.headers),
|
|
198
|
-
body: responseBody,
|
|
199
|
-
})
|
|
200
|
-
})
|
|
163
|
+
// Propagate previously captured errors.
|
|
164
|
+
// For example, a ECONNREFUSED error when connecting to a non-existing host.
|
|
165
|
+
if (this.capturedError) {
|
|
166
|
+
this.emit('error', this.capturedError)
|
|
167
|
+
return this
|
|
168
|
+
}
|
|
201
169
|
|
|
202
|
-
|
|
170
|
+
// Write the request body chunks in the order of ".write()" calls.
|
|
171
|
+
// Note that no request body has been written prior to this point
|
|
172
|
+
// in order to prevent the Socket to communicate with a potentially
|
|
173
|
+
// existing server.
|
|
174
|
+
this.log('writing request chunks...', this.chunks)
|
|
175
|
+
for (const { chunk, encoding, callback } of this.chunks) {
|
|
176
|
+
encoding
|
|
177
|
+
? super.write(chunk, encoding, callback)
|
|
178
|
+
: super.write(chunk, callback)
|
|
179
|
+
}
|
|
203
180
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
() => {
|
|
209
|
-
this.log('original request
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
181
|
+
this.once('error', (error) => {
|
|
182
|
+
this.log('original request error:', error)
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
this.once('abort', () => {
|
|
186
|
+
this.log('original request aborted!')
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
this.once('response-internal', async (response: IncomingMessage) => {
|
|
190
|
+
const responseBody = await getIncomingMessageBody(response)
|
|
191
|
+
this.log(response.statusCode, response.statusMessage, responseBody)
|
|
192
|
+
this.log('original response headers:', response.headers)
|
|
193
|
+
|
|
194
|
+
this.log('emitting the custom "response" event...')
|
|
195
|
+
this.observer.emit('response', isomorphicRequest, {
|
|
196
|
+
status: response.statusCode || 200,
|
|
197
|
+
statusText: response.statusMessage || 'OK',
|
|
198
|
+
headers: objectToHeaders(response.headers),
|
|
199
|
+
body: responseBody,
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
|
|
203
|
+
this.log('performing original request...')
|
|
204
|
+
|
|
205
|
+
return super.end(
|
|
206
|
+
...[
|
|
207
|
+
chunk,
|
|
208
|
+
encoding as any,
|
|
209
|
+
() => {
|
|
210
|
+
this.log('original request end!')
|
|
211
|
+
callback?.()
|
|
212
|
+
},
|
|
213
|
+
].filter(Boolean)
|
|
214
|
+
)
|
|
215
|
+
}
|
|
213
216
|
)
|
|
217
|
+
|
|
218
|
+
return this
|
|
214
219
|
}
|
|
215
220
|
|
|
216
221
|
emit(event: string, ...data: any[]) {
|
|
@@ -15,7 +15,7 @@ export function request(
|
|
|
15
15
|
observer: Observer
|
|
16
16
|
) {
|
|
17
17
|
return (...args: ClientRequestArgs): ClientRequest => {
|
|
18
|
-
log('
|
|
18
|
+
log('request call (protocol "%s"):', protocol, args)
|
|
19
19
|
|
|
20
20
|
const clientRequestArgs = normalizeClientRequestArgs(
|
|
21
21
|
`${protocol}:`,
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { Socket } from 'net'
|
|
2
2
|
import { IncomingMessage } from 'http'
|
|
3
|
+
import { Stream, Readable, EventEmitter } from 'stream'
|
|
3
4
|
import { cloneIncomingMessage, IS_CLONE } from './cloneIncomingMessage'
|
|
4
5
|
|
|
5
6
|
test('clones a given IncomingMessage', () => {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const clone = cloneIncomingMessage(
|
|
7
|
+
const message = new IncomingMessage(new Socket())
|
|
8
|
+
message.statusCode = 200
|
|
9
|
+
message.statusMessage = 'OK'
|
|
10
|
+
message.headers = { 'x-powered-by': 'msw' }
|
|
11
|
+
const clone = cloneIncomingMessage(message)
|
|
12
|
+
|
|
13
|
+
// Prototypes must be preserved.
|
|
14
|
+
expect(clone).toBeInstanceOf(IncomingMessage)
|
|
15
|
+
expect(clone).toBeInstanceOf(EventEmitter)
|
|
16
|
+
expect(clone).toBeInstanceOf(Stream)
|
|
17
|
+
expect(clone).toBeInstanceOf(Readable)
|
|
11
18
|
|
|
12
19
|
expect(clone.statusCode).toEqual(200)
|
|
13
20
|
expect(clone.statusMessage).toEqual('OK')
|
|
@@ -15,6 +22,4 @@ test('clones a given IncomingMessage', () => {
|
|
|
15
22
|
|
|
16
23
|
// Cloned IncomingMessage must be marked respectively.
|
|
17
24
|
expect(clone[IS_CLONE]).toEqual(true)
|
|
18
|
-
|
|
19
|
-
expect(clone).toHaveProperty('_events')
|
|
20
25
|
})
|
|
@@ -7,35 +7,68 @@ export interface ClonedIncomingMessage extends IncomingMessage {
|
|
|
7
7
|
[IS_CLONE]: boolean
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Clones a given `http.IncomingMessage` instance.
|
|
12
|
+
*/
|
|
10
13
|
export function cloneIncomingMessage(
|
|
11
14
|
message: IncomingMessage
|
|
12
15
|
): ClonedIncomingMessage {
|
|
13
|
-
const
|
|
14
|
-
const properties = [
|
|
15
|
-
...Object.getOwnPropertyNames(message),
|
|
16
|
-
...Object.getOwnPropertySymbols(message),
|
|
17
|
-
] as Array<keyof IncomingMessage>
|
|
18
|
-
|
|
19
|
-
for (const propertyName of properties) {
|
|
20
|
-
if (stream.hasOwnProperty(propertyName)) {
|
|
21
|
-
continue
|
|
22
|
-
}
|
|
16
|
+
const clone = message.pipe(new PassThrough())
|
|
23
17
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
propertyName
|
|
27
|
-
)
|
|
18
|
+
// Inherit all direct "IncomingMessage" properties.
|
|
19
|
+
inheritProperties(message, clone)
|
|
28
20
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
21
|
+
// Deeply inherit the message prototypes (Readable, Stream, EventEmitter, etc.).
|
|
22
|
+
const clonedPrototype = Object.create(IncomingMessage.prototype)
|
|
23
|
+
getPrototypes(clone).forEach((prototype) => {
|
|
24
|
+
inheritProperties(prototype, clonedPrototype)
|
|
25
|
+
})
|
|
26
|
+
Object.setPrototypeOf(clone, clonedPrototype)
|
|
34
27
|
|
|
35
|
-
Object.defineProperty(
|
|
28
|
+
Object.defineProperty(clone, IS_CLONE, {
|
|
36
29
|
enumerable: true,
|
|
37
30
|
value: true,
|
|
38
31
|
})
|
|
39
32
|
|
|
40
|
-
return
|
|
33
|
+
return clone as unknown as ClonedIncomingMessage
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Returns a list of all prototypes the given object extends.
|
|
38
|
+
*/
|
|
39
|
+
function getPrototypes(source: object): object[] {
|
|
40
|
+
const prototypes: object[] = []
|
|
41
|
+
let current = source
|
|
42
|
+
|
|
43
|
+
while ((current = Object.getPrototypeOf(current))) {
|
|
44
|
+
prototypes.push(current)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return prototypes
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Inherits a given target object properties and symbols
|
|
52
|
+
* onto the given source object.
|
|
53
|
+
* @param source Object which should acquire properties.
|
|
54
|
+
* @param target Object to inherit the properties from.
|
|
55
|
+
*/
|
|
56
|
+
function inheritProperties(source: object, target: object): void {
|
|
57
|
+
const properties = [
|
|
58
|
+
...Object.getOwnPropertyNames(source),
|
|
59
|
+
...Object.getOwnPropertySymbols(source),
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
for (const property of properties) {
|
|
63
|
+
if (target.hasOwnProperty(property)) {
|
|
64
|
+
continue
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const descriptor = Object.getOwnPropertyDescriptor(source, property)
|
|
68
|
+
if (!descriptor) {
|
|
69
|
+
continue
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
Object.defineProperty(target, property, descriptor)
|
|
73
|
+
}
|
|
41
74
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { parse } from 'url'
|
|
2
|
-
import {
|
|
2
|
+
import { globalAgent as httpGlobalAgent, RequestOptions } from 'http'
|
|
3
|
+
import { Agent as HttpsAgent, globalAgent as httpsGlobalAgent } from 'https'
|
|
3
4
|
import { getUrlByRequestOptions } from '../../../utils/getUrlByRequestOptions'
|
|
4
5
|
import { normalizeClientRequestArgs } from './normalizeClientRequestArgs'
|
|
5
6
|
|
|
@@ -192,8 +193,9 @@ test('handles [URL, RequestOptions, callback] input', () => {
|
|
|
192
193
|
expect(url.href).toEqual('https://mswjs.io/resource')
|
|
193
194
|
|
|
194
195
|
// Options must be preserved.
|
|
195
|
-
expect(options).toEqual({
|
|
196
|
+
expect(options).toEqual<RequestOptions>({
|
|
196
197
|
agent: false,
|
|
198
|
+
_defaultAgent: httpsGlobalAgent,
|
|
197
199
|
protocol: url.protocol,
|
|
198
200
|
method: 'GET',
|
|
199
201
|
headers: {
|
|
@@ -294,12 +296,11 @@ test('sets fallback Agent based on the URL protocol', () => {
|
|
|
294
296
|
'https:',
|
|
295
297
|
'https://github.com'
|
|
296
298
|
)
|
|
299
|
+
const agent = options.agent as HttpsAgent
|
|
297
300
|
|
|
298
|
-
expect(
|
|
299
|
-
expect(
|
|
300
|
-
|
|
301
|
-
options.agent.protocol
|
|
302
|
-
).toEqual(url.protocol)
|
|
301
|
+
expect(agent).toBeInstanceOf(HttpsAgent)
|
|
302
|
+
expect(agent).toHaveProperty('defaultPort', 443)
|
|
303
|
+
expect(agent).toHaveProperty('protocol', url.protocol)
|
|
303
304
|
})
|
|
304
305
|
|
|
305
306
|
test('does not set any fallback Agent given "agent: false" option', () => {
|
|
@@ -312,6 +313,41 @@ test('does not set any fallback Agent given "agent: false" option', () => {
|
|
|
312
313
|
expect(options.agent).toEqual(false)
|
|
313
314
|
})
|
|
314
315
|
|
|
316
|
+
test('sets the default Agent for HTTP request', () => {
|
|
317
|
+
const [, options] = normalizeClientRequestArgs(
|
|
318
|
+
'http:',
|
|
319
|
+
'http://github.com',
|
|
320
|
+
{}
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
expect(options._defaultAgent).toEqual(httpGlobalAgent)
|
|
324
|
+
})
|
|
325
|
+
|
|
326
|
+
test('sets the default Agent for HTTPS request', () => {
|
|
327
|
+
const [, options] = normalizeClientRequestArgs(
|
|
328
|
+
'https:',
|
|
329
|
+
'https://github.com',
|
|
330
|
+
{}
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
expect(options._defaultAgent).toEqual(httpsGlobalAgent)
|
|
334
|
+
})
|
|
335
|
+
|
|
336
|
+
test('preserves a custom default Agent when set', () => {
|
|
337
|
+
const [, options] = normalizeClientRequestArgs(
|
|
338
|
+
'https:',
|
|
339
|
+
'https://github.com',
|
|
340
|
+
{
|
|
341
|
+
/**
|
|
342
|
+
* @note Intentionally incorrect Agent for HTTPS request.
|
|
343
|
+
*/
|
|
344
|
+
_defaultAgent: httpGlobalAgent,
|
|
345
|
+
}
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
expect(options._defaultAgent).toEqual(httpGlobalAgent)
|
|
349
|
+
})
|
|
350
|
+
|
|
315
351
|
test('merges URL-based RequestOptions with the custom RequestOptions', () => {
|
|
316
352
|
const [url, options] = normalizeClientRequestArgs(
|
|
317
353
|
'https:',
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { debug } from 'debug'
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
Agent as HttpAgent,
|
|
4
|
+
globalAgent as httpGlobalAgent,
|
|
5
|
+
IncomingMessage,
|
|
6
|
+
} from 'http'
|
|
7
|
+
import {
|
|
8
|
+
RequestOptions,
|
|
9
|
+
Agent as HttpsAgent,
|
|
10
|
+
globalAgent as httpsGlobalAgent,
|
|
11
|
+
} from 'https'
|
|
4
12
|
import { Url as LegacyURL } from 'url'
|
|
5
13
|
import { getRequestOptionsByUrl } from '../../../utils/getRequestOptionsByUrl'
|
|
6
14
|
import {
|
|
@@ -198,8 +206,27 @@ export function normalizeClientRequestArgs(
|
|
|
198
206
|
log('resolved fallback agent:', agent)
|
|
199
207
|
}
|
|
200
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Ensure that the default Agent is always set.
|
|
211
|
+
* This prevents the protocol mismatch for requests with { agent: false },
|
|
212
|
+
* where the global Agent is inferred.
|
|
213
|
+
* @see https://github.com/mswjs/msw/issues/1150
|
|
214
|
+
* @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L130
|
|
215
|
+
* @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L157-L159
|
|
216
|
+
*/
|
|
217
|
+
if (!options._defaultAgent) {
|
|
218
|
+
log(
|
|
219
|
+
'has no default agent, setting the default agent for "%s"',
|
|
220
|
+
options.protocol
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
options._defaultAgent =
|
|
224
|
+
options.protocol === 'https:' ? httpsGlobalAgent : httpGlobalAgent
|
|
225
|
+
}
|
|
226
|
+
|
|
201
227
|
log('successfully resolved url:', url.href)
|
|
202
228
|
log('successfully resolved options:', options)
|
|
229
|
+
log('successfully resolved callback:', callback)
|
|
203
230
|
|
|
204
231
|
return [url, options, callback]
|
|
205
232
|
}
|
package/src/remote.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChildProcess
|
|
1
|
+
import { ChildProcess } from 'child_process'
|
|
2
2
|
import { Headers } from 'headers-polyfill'
|
|
3
3
|
import { invariant } from 'outvariant'
|
|
4
4
|
import { StrictEventEmitter } from 'strict-event-emitter'
|
|
@@ -12,8 +12,6 @@ import {
|
|
|
12
12
|
} from './createInterceptor'
|
|
13
13
|
import { toIsoResponse } from './utils/toIsoResponse'
|
|
14
14
|
|
|
15
|
-
type ProcessEventListener = (message: Serializable, ...args: any[]) => void
|
|
16
|
-
|
|
17
15
|
export type CreateRemoteInterceptorOptions = Omit<
|
|
18
16
|
InterceptorOptions,
|
|
19
17
|
'resolver'
|
|
@@ -64,7 +62,7 @@ spawn('node', ['module.js'], { stdio: ['ipc'] })\
|
|
|
64
62
|
)
|
|
65
63
|
}
|
|
66
64
|
|
|
67
|
-
let handleParentMessage:
|
|
65
|
+
let handleParentMessage: NodeJS.MessageListener
|
|
68
66
|
|
|
69
67
|
const interceptor = createInterceptor({
|
|
70
68
|
...options,
|
|
@@ -73,7 +71,7 @@ spawn('node', ['module.js'], { stdio: ['ipc'] })\
|
|
|
73
71
|
process.send?.(`request:${serializedRequest}`)
|
|
74
72
|
|
|
75
73
|
return new Promise((resolve) => {
|
|
76
|
-
handleParentMessage = (message
|
|
74
|
+
handleParentMessage = (message) => {
|
|
77
75
|
if (typeof message !== 'string') {
|
|
78
76
|
return
|
|
79
77
|
}
|
|
@@ -115,7 +113,7 @@ export function createRemoteResolver(
|
|
|
115
113
|
): RemoteResolverApi {
|
|
116
114
|
const observer = new StrictEventEmitter<InterceptorEventsMap>()
|
|
117
115
|
|
|
118
|
-
const handleChildMessage:
|
|
116
|
+
const handleChildMessage: NodeJS.MessageListener = async (message) => {
|
|
119
117
|
if (typeof message !== 'string') {
|
|
120
118
|
return
|
|
121
119
|
}
|