@mswjs/interceptors 0.13.4 → 0.14.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.
@@ -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): Promise<void>;
29
+ end(...args: any): this;
30
30
  emit(event: string, ...data: any[]): boolean;
31
31
  private respondWith;
32
32
  /**
@@ -147,117 +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
- return __awaiter(this, void 0, void 0, function () {
155
- var _a, chunk, encoding, callback, requestBody, isomorphicRequest, _b, resolverError, mockedResponse, isomorphicResponse, _c, _d, _e, chunk_1, encoding_1, callback_1;
156
- var e_1, _f;
157
- var _this = this;
158
- return __generator(this, function (_g) {
159
- switch (_g.label) {
160
- case 0:
161
- this.log('end', args);
162
- _a = __read(normalizeClientRequestEndArgs_1.normalizeClientRequestEndArgs.apply(void 0, __spreadArray([], __read(args))), 3), chunk = _a[0], encoding = _a[1], callback = _a[2];
163
- this.log('normalized arguments:', { chunk: chunk, encoding: encoding, callback: callback });
164
- requestBody = this.getRequestBody(chunk);
165
- isomorphicRequest = this.toIsomorphicRequest(requestBody);
166
- this.observer.emit('request', isomorphicRequest);
167
- this.log('executing response resolver...');
168
- return [4 /*yield*/, until_1.until(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
169
- return [2 /*return*/, this.resolver(isomorphicRequest, this.response)];
170
- }); }); })
171
- // Halt the request whenever the resolver throws an exception.
172
- ];
173
- case 1:
174
- _b = __read.apply(void 0, [_g.sent()
175
- // Halt the request whenever the resolver throws an exception.
176
- , 2]), resolverError = _b[0], mockedResponse = _b[1];
177
- // Halt the request whenever the resolver throws an exception.
178
- if (resolverError) {
179
- this.log('encountered resolver exception, aborting request...', resolverError);
180
- this.emit('error', resolverError);
181
- this.terminate();
182
- return [2 /*return*/];
183
- }
184
- if (mockedResponse) {
185
- this.log('received mocked response:', mockedResponse);
186
- this.responseSource = 'mock';
187
- isomorphicResponse = toIsoResponse_1.toIsoResponse(mockedResponse);
188
- this.respondWith(mockedResponse);
189
- this.log(isomorphicResponse.status, isomorphicResponse.statusText, isomorphicResponse.body, '(MOCKED)');
190
- callback === null || callback === void 0 ? void 0 : callback();
191
- this.observer.emit('response', isomorphicRequest, isomorphicResponse);
192
- return [2 /*return*/];
193
- }
194
- this.log('no mocked response found!');
195
- // Set the response source to "bypass".
196
- // Any errors emitted past this point are not suppressed.
197
- this.responseSource = 'bypass';
198
- // Propagate previously captured errors.
199
- // For example, a ECONNREFUSED error when connecting to a non-existing host.
200
- if (this.capturedError) {
201
- this.emit('error', this.capturedError);
202
- return [2 /*return*/];
203
- }
204
- // Write the request body chunks in the order of ".write()" calls.
205
- // Note that no request body has been written prior to this point
206
- // in order to prevent the Socket to communicate with a potentially
207
- // existing server.
208
- this.log('writing request chunks...', this.chunks);
209
- try {
210
- for (_c = __values(this.chunks), _d = _c.next(); !_d.done; _d = _c.next()) {
211
- _e = _d.value, chunk_1 = _e.chunk, encoding_1 = _e.encoding, callback_1 = _e.callback;
212
- encoding_1
213
- ? _super.prototype.write.call(this, chunk_1, encoding_1, callback_1)
214
- : _super.prototype.write.call(this, chunk_1, callback_1);
215
- }
216
- }
217
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
218
- finally {
219
- try {
220
- if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
221
- }
222
- finally { if (e_1) throw e_1.error; }
223
- }
224
- this.once('error', function (error) {
225
- _this.log('original request error:', error);
226
- });
227
- this.once('abort', function () {
228
- _this.log('original request aborted!');
229
- });
230
- this.once('response-internal', function (response) { return __awaiter(_this, void 0, void 0, function () {
231
- var responseBody;
232
- return __generator(this, function (_a) {
233
- switch (_a.label) {
234
- case 0: return [4 /*yield*/, getIncomingMessageBody_1.getIncomingMessageBody(response)];
235
- case 1:
236
- responseBody = _a.sent();
237
- this.log(response.statusCode, response.statusMessage, responseBody);
238
- this.log('original response headers:', response.headers);
239
- this.observer.emit('response', isomorphicRequest, {
240
- status: response.statusCode || 200,
241
- statusText: response.statusMessage || 'OK',
242
- headers: lib_1.objectToHeaders(response.headers),
243
- body: responseBody,
244
- });
245
- return [2 /*return*/];
246
- }
247
- });
248
- }); });
249
- this.log('performing original request...');
250
- return [2 /*return*/, _super.prototype.end.apply(this, __spreadArray([], __read([
251
- chunk,
252
- encoding,
253
- function () {
254
- _this.log('original request end!');
255
- callback === null || callback === void 0 ? void 0 : callback();
256
- },
257
- ].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);
258
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);
219
+ });
220
+ _this.once('abort', function () {
221
+ _this.log('original request aborted!');
259
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))));
260
252
  });
253
+ return this;
261
254
  };
262
255
  NodeClientRequest.prototype.emit = function (event) {
263
256
  var data = [];
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClientRequest.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/NodeClientRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeClientRequest.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/NodeClientRequest.ts"],"names":[],"mappings":"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"}
@@ -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 stream = message.pipe(new stream_1.PassThrough());
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 propertyName = properties_1_1.value;
56
- if (stream.hasOwnProperty(propertyName)) {
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
- var propertyDescriptor = Object.getOwnPropertyDescriptor(message, propertyName);
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iCAAoC;AAEvB,QAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAMzC,SAAgB,oBAAoB,CAClC,OAAwB;;IAExB,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,oBAAW,EAAE,CAAC,CAAA;IAC9C,IAAM,UAAU,GAAG,uCACd,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,WACnC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACT,CAAA;;QAEjC,KAA2B,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAAlC,IAAM,YAAY,uBAAA;YACrB,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACvC,SAAQ;aACT;YAED,IAAM,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,CACxD,OAAO,EACP,YAAY,CACb,CAAA;YAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,wBACrC,kBAAkB,KACrB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,IAC5B,CAAA;SACH;;;;;;;;;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAQ,EAAE;QACtC,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,MAA0C,CAAA;AACnD,CAAC;AA/BD,oDA+BC"}
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"}
package/lib/remote.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
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.13.4",
4
+ "version": "0.14.0",
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": ">=12.x"
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
- "prepublishOnly": "yarn build"
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": "^5.1.3",
40
+ "@types/express-rate-limit": "^6.0.0",
40
41
  "@types/jest": "^27.0.3",
41
- "@types/node": "^14.14.35",
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,24 +48,26 @@
47
48
  "commitizen": "^4.2.4",
48
49
  "cors": "^2.8.5",
49
50
  "cz-conventional-changelog": "3.3.0",
50
- "express": "^4.17.1",
51
- "express-rate-limit": "^5.5.1",
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",
60
62
  "ts-jest": "^27.1.1",
61
- "typescript": "4.3.5"
63
+ "typescript": "4.3.5",
64
+ "wait-for-expect": "^3.0.2"
62
65
  },
63
66
  "dependencies": {
64
67
  "@open-draft/until": "^1.0.3",
65
68
  "@xmldom/xmldom": "^0.7.5",
66
69
  "debug": "^4.3.3",
67
- "headers-polyfill": "^3.0.3",
70
+ "headers-polyfill": "^3.0.4",
68
71
  "outvariant": "^1.2.1",
69
72
  "strict-event-emitter": "^0.2.0"
70
73
  },
@@ -105,7 +105,7 @@ export class NodeClientRequest extends ClientRequest {
105
105
  return true
106
106
  }
107
107
 
108
- async end(...args: any): Promise<void> {
108
+ end(...args: any): this {
109
109
  this.log('end', args)
110
110
 
111
111
  const [chunk, encoding, callback] = normalizeClientRequestEndArgs(...args)
@@ -116,99 +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
- callback?.()
149
-
150
- this.observer.emit('response', isomorphicRequest, isomorphicResponse)
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
+ }
151
135
 
152
- return
153
- }
136
+ if (mockedResponse) {
137
+ this.log('received mocked response:', mockedResponse)
138
+ this.responseSource = 'mock'
154
139
 
155
- this.log('no mocked response found!')
140
+ const isomorphicResponse = toIsoResponse(mockedResponse)
141
+ this.respondWith(mockedResponse)
142
+ this.log(
143
+ isomorphicResponse.status,
144
+ isomorphicResponse.statusText,
145
+ isomorphicResponse.body,
146
+ '(MOCKED)'
147
+ )
156
148
 
157
- // Set the response source to "bypass".
158
- // Any errors emitted past this point are not suppressed.
159
- this.responseSource = 'bypass'
149
+ callback?.()
160
150
 
161
- // Propagate previously captured errors.
162
- // For example, a ECONNREFUSED error when connecting to a non-existing host.
163
- if (this.capturedError) {
164
- this.emit('error', this.capturedError)
165
- return
166
- }
151
+ this.log('emitting the custom "response" event...')
152
+ this.observer.emit('response', isomorphicRequest, isomorphicResponse)
167
153
 
168
- // Write the request body chunks in the order of ".write()" calls.
169
- // Note that no request body has been written prior to this point
170
- // in order to prevent the Socket to communicate with a potentially
171
- // existing server.
172
- this.log('writing request chunks...', this.chunks)
173
- for (const { chunk, encoding, callback } of this.chunks) {
174
- encoding
175
- ? super.write(chunk, encoding, callback)
176
- : super.write(chunk, callback)
177
- }
154
+ return this
155
+ }
178
156
 
179
- this.once('error', (error) => {
180
- this.log('original request error:', error)
181
- })
157
+ this.log('no mocked response found!')
182
158
 
183
- this.once('abort', () => {
184
- this.log('original request aborted!')
185
- })
159
+ // Set the response source to "bypass".
160
+ // Any errors emitted past this point are not suppressed.
161
+ this.responseSource = 'bypass'
186
162
 
187
- this.once('response-internal', async (response: IncomingMessage) => {
188
- const responseBody = await getIncomingMessageBody(response)
189
- this.log(response.statusCode, response.statusMessage, responseBody)
190
- this.log('original response headers:', response.headers)
191
-
192
- this.observer.emit('response', isomorphicRequest, {
193
- status: response.statusCode || 200,
194
- statusText: response.statusMessage || 'OK',
195
- headers: objectToHeaders(response.headers),
196
- body: responseBody,
197
- })
198
- })
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
+ }
199
169
 
200
- this.log('performing original request...')
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
+ }
201
180
 
202
- return super.end(
203
- ...[
204
- chunk,
205
- encoding as any,
206
- () => {
207
- this.log('original request end!')
208
- callback?.()
209
- },
210
- ].filter(Boolean)
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
+ }
211
216
  )
217
+
218
+ return this
212
219
  }
213
220
 
214
221
  emit(event: string, ...data: any[]) {
@@ -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 source = new IncomingMessage(new Socket())
7
- source.statusCode = 200
8
- source.statusMessage = 'OK'
9
- source.headers = { 'x-powered-by': 'msw' }
10
- const clone = cloneIncomingMessage(source)
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 stream = message.pipe(new PassThrough())
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
- const propertyDescriptor = Object.getOwnPropertyDescriptor(
25
- message,
26
- propertyName
27
- )
18
+ // Inherit all direct "IncomingMessage" properties.
19
+ inheritProperties(message, clone)
28
20
 
29
- Object.defineProperty(stream, propertyName, {
30
- ...propertyDescriptor,
31
- value: message[propertyName],
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(stream, IS_CLONE, {
28
+ Object.defineProperty(clone, IS_CLONE, {
36
29
  enumerable: true,
37
30
  value: true,
38
31
  })
39
32
 
40
- return stream as unknown as ClonedIncomingMessage
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
  }
package/src/remote.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ChildProcess, Serializable } from 'child_process'
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: ProcessEventListener
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: Serializable) => {
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: ProcessEventListener = async (message) => {
116
+ const handleChildMessage: NodeJS.MessageListener = async (message) => {
119
117
  if (typeof message !== 'string') {
120
118
  return
121
119
  }