@mswjs/interceptors 0.16.3 → 0.16.6

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/glossary.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { HeadersObject, Headers } from 'headers-polyfill';
2
2
  import type { LazyCallback } from './utils/createLazyCallback';
3
+ export declare const IS_PATCHED_MODULE: unique symbol;
3
4
  export declare type RequestCredentials = 'omit' | 'include' | 'same-origin';
4
5
  export interface IsomorphicRequest {
5
6
  id: string;
package/lib/glossary.js CHANGED
@@ -1,3 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IS_PATCHED_MODULE = void 0;
4
+ exports.IS_PATCHED_MODULE = Symbol('isPatchedModule');
3
5
  //# sourceMappingURL=glossary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glossary.js","sourceRoot":"","sources":["../src/glossary.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"glossary.js","sourceRoot":"","sources":["../src/glossary.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAA"}
@@ -130,38 +130,25 @@ var NodeClientRequest = /** @class */ (function (_super) {
130
130
  return _this;
131
131
  }
132
132
  NodeClientRequest.prototype.write = function () {
133
- var _this = this;
134
133
  var args = [];
135
134
  for (var _i = 0; _i < arguments.length; _i++) {
136
135
  args[_i] = arguments[_i];
137
136
  }
138
137
  var _a = __read(normalizeClientRequestWriteArgs_1.normalizeClientRequestWriteArgs(args), 3), chunk = _a[0], encoding = _a[1], callback = _a[2];
139
138
  this.log('write:', { chunk: chunk, encoding: encoding, callback: callback });
140
- this.chunks.push({
141
- chunk: chunk,
142
- encoding: encoding,
143
- callback: function (error) {
144
- _this.log('executing custom callback...');
145
- if (error) {
146
- _this.log('error while writing chunk!', error);
147
- }
148
- else {
149
- _this.log('request chunk successfully written!');
150
- }
151
- /**
152
- * Prevent invoking the callback if the written chunk is empty.
153
- * @see https://nodejs.org/api/http.html#requestwritechunk-encoding-callback
154
- */
155
- if (!chunk || chunk.length === 0) {
156
- _this.log('written chunk is empty, skipping callback...');
157
- return;
158
- }
159
- _this.log('executing custom write callback:', callback);
160
- callback === null || callback === void 0 ? void 0 : callback(error);
161
- },
162
- });
139
+ this.chunks.push({ chunk: chunk, encoding: encoding });
163
140
  this.requestBody = concatChunkToBuffer_1.concatChunkToBuffer(chunk, this.requestBody);
164
141
  this.log('chunk successfully stored!', this.requestBody);
142
+ /**
143
+ * Prevent invoking the callback if the written chunk is empty.
144
+ * @see https://nodejs.org/api/http.html#requestwritechunk-encoding-callback
145
+ */
146
+ if (!chunk || chunk.length === 0) {
147
+ this.log('written chunk is empty, skipping callback...');
148
+ }
149
+ else {
150
+ callback === null || callback === void 0 ? void 0 : callback();
151
+ }
165
152
  // Do not write the request body chunks to prevent
166
153
  // the Socket from sending data to a potentially existing
167
154
  // server when there is a mocked response defined.
@@ -252,10 +239,13 @@ var NodeClientRequest = /** @class */ (function (_super) {
252
239
  _this.log('writing request chunks...', _this.chunks);
253
240
  try {
254
241
  for (var _d = __values(_this.chunks), _e = _d.next(); !_e.done; _e = _d.next()) {
255
- var _f = _e.value, chunk_1 = _f.chunk, encoding_1 = _f.encoding, callback_1 = _f.callback;
256
- encoding_1
257
- ? _super.prototype.write.call(_this, chunk_1, encoding_1, callback_1)
258
- : _super.prototype.write.call(_this, chunk_1, callback_1);
242
+ var _f = _e.value, chunk_1 = _f.chunk, encoding_1 = _f.encoding;
243
+ if (encoding_1) {
244
+ _super.prototype.write.call(_this, chunk_1, encoding_1);
245
+ }
246
+ else {
247
+ _super.prototype.write.call(_this, chunk_1);
248
+ }
259
249
  }
260
250
  }
261
251
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -324,7 +314,7 @@ var NodeClientRequest = /** @class */ (function (_super) {
324
314
  var firstClone = cloneIncomingMessage_1.cloneIncomingMessage(response);
325
315
  var secondClone = cloneIncomingMessage_1.cloneIncomingMessage(response);
326
316
  this.emit('response-internal', secondClone);
327
- this.log('response successfuly cloned, emitting "response" event...');
317
+ this.log('response successfully cloned, emitting "response" event...');
328
318
  return _super.prototype.emit.apply(this, __spreadArray([event, firstClone], __read(data.slice(1))));
329
319
  }
330
320
  catch (error) {
@@ -336,7 +326,7 @@ var NodeClientRequest = /** @class */ (function (_super) {
336
326
  var error = data[0];
337
327
  var errorCode = error.code || '';
338
328
  this.log('error:\n', error);
339
- // Supress certain errors while using the "mock" source.
329
+ // Suppress certain errors while using the "mock" source.
340
330
  // For example, no need to destroy this request if it connects
341
331
  // to a non-existing hostname but has a mocked response.
342
332
  if (this.responseSource === 'mock' &&
@@ -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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"}
@@ -1,12 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import http from 'http';
3
3
  import https from 'https';
4
- import { HttpRequestEventMap } from '../../glossary';
4
+ import { HttpRequestEventMap, IS_PATCHED_MODULE } from '../../glossary';
5
5
  import { Interceptor } from '../../Interceptor';
6
6
  import { AsyncEventEmitter } from '../../utils/AsyncEventEmitter';
7
7
  import { Protocol } from './NodeClientRequest';
8
+ export declare type MaybePatchedModule<Module> = Module & {
9
+ [IS_PATCHED_MODULE]?: boolean;
10
+ };
8
11
  export declare type ClientRequestEmitter = AsyncEventEmitter<HttpRequestEventMap>;
9
- export declare type ClientRequestModules = Map<Protocol, typeof http | typeof https>;
12
+ export declare type ClientRequestModules = Map<Protocol, MaybePatchedModule<typeof http> | MaybePatchedModule<typeof https>>;
10
13
  /**
11
14
  * Intercept requests made via the `ClientRequest` class.
12
15
  * Such requests include `http.get`, `https.request`, etc.
@@ -48,6 +48,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.ClientRequestInterceptor = void 0;
49
49
  var http_1 = __importDefault(require("http"));
50
50
  var https_1 = __importDefault(require("https"));
51
+ var outvariant_1 = require("outvariant");
52
+ var glossary_1 = require("../../glossary");
51
53
  var Interceptor_1 = require("../../Interceptor");
52
54
  var http_get_1 = require("./http.get");
53
55
  var http_request_1 = require("./http.request");
@@ -69,7 +71,11 @@ var ClientRequestInterceptor = /** @class */ (function (_super) {
69
71
  var log = this.log.extend('setup');
70
72
  var _loop_1 = function (protocol, requestModule) {
71
73
  var pureRequest = requestModule.request, pureGet = requestModule.get;
74
+ outvariant_1.invariant(!requestModule[glossary_1.IS_PATCHED_MODULE], 'Failed to patch the "%s" module: already patched.', protocol);
72
75
  this_1.subscriptions.push(function () {
76
+ Object.defineProperty(requestModule, glossary_1.IS_PATCHED_MODULE, {
77
+ value: undefined,
78
+ });
73
79
  requestModule.request = pureRequest;
74
80
  requestModule.get = pureGet;
75
81
  log('native "%s" module restored!', protocol);
@@ -86,6 +92,11 @@ var ClientRequestInterceptor = /** @class */ (function (_super) {
86
92
  requestModule.get =
87
93
  // Force a line break.
88
94
  http_get_1.get(protocol, options);
95
+ Object.defineProperty(requestModule, glossary_1.IS_PATCHED_MODULE, {
96
+ configurable: true,
97
+ enumerable: true,
98
+ value: true,
99
+ });
89
100
  log('native "%s" module patched!', protocol);
90
101
  };
91
102
  var this_1 = this;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,gDAAyB;AAEzB,iDAA+C;AAE/C,uCAAgC;AAChC,+CAAwC;AAOxC;;;GAGG;AACH;IAA8C,4CAAgC;IAI5E;QAAA,YACE,kBAAM,wBAAwB,CAAC,MAAM,CAAC,SAKvC;QAHC,KAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;QACxB,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAI,CAAC,CAAA;QAC9B,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAK,CAAC,CAAA;;IAClC,CAAC;IAES,wCAAK,GAAf;;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gCAExB,QAAQ,EAAE,aAAa;YACzB,IAAS,WAAW,GAAmB,aAAa,QAAhC,EAAO,OAAO,GAAK,aAAa,IAAlB,CAAkB;YAE5D,OAAK,aAAa,CAAC,IAAI,CAAC;gBACtB,aAAa,CAAC,OAAO,GAAG,WAAW,CAAA;gBACnC,aAAa,CAAC,GAAG,GAAG,OAAO,CAAA;gBAE3B,GAAG,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;YAEF,IAAM,OAAO,GAAsB;gBACjC,OAAO,EAAE,OAAK,OAAO;gBACrB,GAAG,EAAE,OAAK,GAAG;aACd,CAAA;YAED,aAAa;YACb,aAAa,CAAC,OAAO;gBACnB,sBAAsB;gBACtB,sBAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE5B,aAAa;YACb,aAAa,CAAC,GAAG;gBACf,sBAAsB;gBACtB,cAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAExB,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;;;;YAzB9C,KAAwC,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA;gBAAzC,IAAA,KAAA,mBAAyB,EAAxB,QAAQ,QAAA,EAAE,aAAa,QAAA;wBAAvB,QAAQ,EAAE,aAAa;aA0BlC;;;;;;;;;IACH,CAAC;IAzCM,+BAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IA0ChC,+BAAC;CAAA,AA3CD,CAA8C,yBAAW,GA2CxD;AA3CY,4DAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,gDAAyB;AACzB,yCAAsC;AACtC,2CAAuE;AACvE,iDAA+C;AAE/C,uCAAgC;AAChC,+CAAwC;AAcxC;;;GAGG;AACH;IAA8C,4CAAgC;IAI5E;QAAA,YACE,kBAAM,wBAAwB,CAAC,MAAM,CAAC,SAKvC;QAHC,KAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;QACxB,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAI,CAAC,CAAA;QAC9B,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAK,CAAC,CAAA;;IAClC,CAAC;IAES,wCAAK,GAAf;;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gCAExB,QAAQ,EAAE,aAAa;YACzB,IAAS,WAAW,GAAmB,aAAa,QAAhC,EAAO,OAAO,GAAK,aAAa,IAAlB,CAAkB;YAE5D,sBAAS,CACP,CAAC,aAAa,CAAC,4BAAiB,CAAC,EACjC,mDAAmD,EACnD,QAAQ,CACT,CAAA;YAED,OAAK,aAAa,CAAC,IAAI,CAAC;gBACtB,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,4BAAiB,EAAE;oBACtD,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAA;gBAEF,aAAa,CAAC,OAAO,GAAG,WAAW,CAAA;gBACnC,aAAa,CAAC,GAAG,GAAG,OAAO,CAAA;gBAE3B,GAAG,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;YAEF,IAAM,OAAO,GAAsB;gBACjC,OAAO,EAAE,OAAK,OAAO;gBACrB,GAAG,EAAE,OAAK,GAAG;aACd,CAAA;YAED,aAAa;YACb,aAAa,CAAC,OAAO;gBACnB,sBAAsB;gBACtB,sBAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE5B,aAAa;YACb,aAAa,CAAC,GAAG;gBACf,sBAAsB;gBACtB,cAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAExB,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,4BAAiB,EAAE;gBACtD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAA;YAEF,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;;;;YAzC9C,KAAwC,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA;gBAAzC,IAAA,KAAA,mBAAyB,EAAxB,QAAQ,QAAA,EAAE,aAAa,QAAA;wBAAvB,QAAQ,EAAE,aAAa;aA0ClC;;;;;;;;;IACH,CAAC;IAzDM,+BAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IA0DhC,+BAAC;CAAA,AA3DD,CAA8C,yBAAW,GA2DxD;AA3DY,4DAAwB"}
@@ -1,4 +1,4 @@
1
- import type { HttpRequestEventMap, InteractiveIsomorphicRequest } from '../../glossary';
1
+ import { HttpRequestEventMap, InteractiveIsomorphicRequest } from '../../glossary';
2
2
  import { Interceptor } from '../../Interceptor';
3
3
  import { AsyncEventEmitter } from '../../utils/AsyncEventEmitter';
4
4
  export declare type XMLHttpRequestEventListener = (request: InteractiveIsomorphicRequest) => Promise<void> | void;
@@ -16,6 +16,8 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.XMLHttpRequestInterceptor = void 0;
19
+ var outvariant_1 = require("outvariant");
20
+ var glossary_1 = require("../../glossary");
19
21
  var Interceptor_1 = require("../../Interceptor");
20
22
  var XMLHttpRequestOverride_1 = require("./XMLHttpRequestOverride");
21
23
  var XMLHttpRequestInterceptor = /** @class */ (function (_super) {
@@ -31,13 +33,22 @@ var XMLHttpRequestInterceptor = /** @class */ (function (_super) {
31
33
  var log = this.log.extend('setup');
32
34
  log('patching "XMLHttpRequest" module...');
33
35
  var PureXMLHttpRequest = window.XMLHttpRequest;
36
+ outvariant_1.invariant(!PureXMLHttpRequest[glossary_1.IS_PATCHED_MODULE], 'Failed to patch the "XMLHttpRequest" module: already patched.');
34
37
  window.XMLHttpRequest = XMLHttpRequestOverride_1.createXMLHttpRequestOverride({
35
38
  XMLHttpRequest: PureXMLHttpRequest,
36
39
  emitter: this.emitter,
37
40
  log: this.log,
38
41
  });
39
42
  log('native "XMLHttpRequest" module patched!', window.XMLHttpRequest.name);
43
+ Object.defineProperty(window.XMLHttpRequest, glossary_1.IS_PATCHED_MODULE, {
44
+ enumerable: true,
45
+ configurable: true,
46
+ value: true,
47
+ });
40
48
  this.subscriptions.push(function () {
49
+ Object.defineProperty(window.XMLHttpRequest, glossary_1.IS_PATCHED_MODULE, {
50
+ value: undefined,
51
+ });
41
52
  window.XMLHttpRequest = PureXMLHttpRequest;
42
53
  log('native "XMLHttpRequest" module restored!', window.XMLHttpRequest.name);
43
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/XMLHttpRequest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIA,iDAA+C;AAE/C,mEAAuE;AAQvE;IAA+C,6CAAgC;IAG7E;eACE,kBAAM,yBAAyB,CAAC,MAAM,CAAC;IACzC,CAAC;IAES,oDAAgB,GAA1B;QACE,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,MAAM,CAAC,cAAc,KAAK,WAAW,CAC7C,CAAA;IACH,CAAC;IAES,yCAAK,GAAf;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEpC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QAE1C,IAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAA;QAEhD,MAAM,CAAC,cAAc,GAAG,qDAA4B,CAAC;YACnD,cAAc,EAAE,kBAAkB;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAE1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAA;YAC1C,GAAG,CACD,0CAA0C,EAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAnCM,gCAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAoC/B,gCAAC;CAAA,AArCD,CAA+C,yBAAW,GAqCzD;AArCY,8DAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/XMLHttpRequest/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAAsC;AACtC,2CAIuB;AACvB,iDAA+C;AAE/C,mEAAuE;AAQvE;IAA+C,6CAAgC;IAG7E;eACE,kBAAM,yBAAyB,CAAC,MAAM,CAAC;IACzC,CAAC;IAES,oDAAgB,GAA1B;QACE,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,MAAM,CAAC,cAAc,KAAK,WAAW,CAC7C,CAAA;IACH,CAAC;IAES,yCAAK,GAAf;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEpC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QAE1C,IAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAA;QAEhD,sBAAS,CACP,CAAE,kBAA0B,CAAC,4BAAiB,CAAC,EAC/C,+DAA+D,CAChE,CAAA;QAED,MAAM,CAAC,cAAc,GAAG,qDAA4B,CAAC;YACnD,cAAc,EAAE,kBAAkB;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAE1E,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,4BAAiB,EAAE;YAC9D,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,4BAAiB,EAAE;gBAC9D,KAAK,EAAE,SAAS;aACjB,CAAC,CAAA;YAEF,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAA;YAC1C,GAAG,CACD,0CAA0C,EAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAlDM,gCAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAmD/B,gCAAC;CAAA,AApDD,CAA+C,yBAAW,GAoDzD;AApDY,8DAAyB"}
@@ -1,4 +1,4 @@
1
- import type { HttpRequestEventMap } from '../../glossary';
1
+ import { HttpRequestEventMap } from '../../glossary';
2
2
  import { Interceptor } from '../../Interceptor';
3
3
  export declare class FetchInterceptor extends Interceptor<HttpRequestEventMap> {
4
4
  static symbol: symbol;
@@ -80,6 +80,8 @@ var __read = (this && this.__read) || function (o, n) {
80
80
  Object.defineProperty(exports, "__esModule", { value: true });
81
81
  exports.FetchInterceptor = void 0;
82
82
  var headers_polyfill_1 = require("headers-polyfill");
83
+ var outvariant_1 = require("outvariant");
84
+ var glossary_1 = require("../../glossary");
83
85
  var Interceptor_1 = require("../../Interceptor");
84
86
  var createLazyCallback_1 = require("../../utils/createLazyCallback");
85
87
  var toIsoResponse_1 = require("../../utils/toIsoResponse");
@@ -96,8 +98,9 @@ var FetchInterceptor = /** @class */ (function (_super) {
96
98
  FetchInterceptor.prototype.setup = function () {
97
99
  var _this = this;
98
100
  var pureFetch = globalThis.fetch;
101
+ outvariant_1.invariant(!pureFetch[glossary_1.IS_PATCHED_MODULE], 'Failed to patch the "fetch" module: already patched.');
99
102
  globalThis.fetch = function (input, init) { return __awaiter(_this, void 0, void 0, function () {
100
- var request, url, method, isomorphicRequest, _a, mockedResponse, isomorphicResponse;
103
+ var request, url, method, isomorphicRequest, _a, mockedResponse, isomorphicResponse, response;
101
104
  var _b;
102
105
  var _this = this;
103
106
  return __generator(this, function (_c) {
@@ -139,11 +142,19 @@ var FetchInterceptor = /** @class */ (function (_super) {
139
142
  isomorphicResponse = toIsoResponse_1.toIsoResponse(mockedResponse);
140
143
  this.log('derived isomorphic response:', isomorphicResponse);
141
144
  this.emitter.emit('response', isomorphicRequest, isomorphicResponse);
142
- return [2 /*return*/, new Response(mockedResponse.body, __assign(__assign({}, isomorphicResponse), {
143
- // `Response.headers` cannot be instantiated with the `Headers` polyfill.
144
- // Apparently, it halts if the `Headers` class contains unknown properties
145
- // (i.e. the internal `Headers.map`).
146
- headers: headers_polyfill_1.flattenHeadersObject(mockedResponse.headers || {}) }))];
145
+ response = new Response(mockedResponse.body, __assign(__assign({}, isomorphicResponse), {
146
+ // `Response.headers` cannot be instantiated with the `Headers` polyfill.
147
+ // Apparently, it halts if the `Headers` class contains unknown properties
148
+ // (i.e. the internal `Headers.map`).
149
+ headers: headers_polyfill_1.flattenHeadersObject(mockedResponse.headers || {}) }));
150
+ // Set the "response.url" property to equal the intercepted request URL.
151
+ Object.defineProperty(response, 'url', {
152
+ writable: false,
153
+ enumerable: true,
154
+ configurable: false,
155
+ value: isomorphicRequest.url.href,
156
+ });
157
+ return [2 /*return*/, response];
147
158
  }
148
159
  this.log('no mocked response received!');
149
160
  return [2 /*return*/, pureFetch(request).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
@@ -166,7 +177,15 @@ var FetchInterceptor = /** @class */ (function (_super) {
166
177
  }
167
178
  });
168
179
  }); };
180
+ Object.defineProperty(globalThis.fetch, glossary_1.IS_PATCHED_MODULE, {
181
+ enumerable: true,
182
+ configurable: true,
183
+ value: true,
184
+ });
169
185
  this.subscriptions.push(function () {
186
+ Object.defineProperty(globalThis.fetch, glossary_1.IS_PATCHED_MODULE, {
187
+ value: undefined,
188
+ });
170
189
  globalThis.fetch = pureFetch;
171
190
  _this.log('restored native "globalThis.fetch"!', globalThis.fetch.name);
172
191
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/fetch/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/fetch/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mswjs/interceptors",
3
3
  "description": "Low-level HTTP/HTTPS/XHR/fetch request interception library.",
4
- "version": "0.16.3",
4
+ "version": "0.16.6",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "author": "Artem Zakharchenko",
@@ -39,6 +39,7 @@
39
39
  "@types/cors": "^2.8.12",
40
40
  "@types/express": "^4.17.13",
41
41
  "@types/express-rate-limit": "^6.0.0",
42
+ "@types/follow-redirects": "^1.14.1",
42
43
  "@types/jest": "^27.0.3",
43
44
  "@types/node": "^16.11.26",
44
45
  "@types/node-fetch": "2.5.12",
@@ -51,6 +52,7 @@
51
52
  "cz-conventional-changelog": "3.3.0",
52
53
  "express": "^4.17.3",
53
54
  "express-rate-limit": "^6.3.0",
55
+ "follow-redirects": "^1.15.1",
54
56
  "got": "^11.8.3",
55
57
  "jest": "^27.4.3",
56
58
  "node-fetch": "2.6.7",
package/src/glossary.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { HeadersObject, Headers } from 'headers-polyfill'
2
2
  import type { LazyCallback } from './utils/createLazyCallback'
3
3
 
4
+ export const IS_PATCHED_MODULE: unique symbol = Symbol('isPatchedModule')
5
+
4
6
  export type RequestCredentials = 'omit' | 'include' | 'same-origin'
5
7
 
6
8
  export interface IsomorphicRequest {
@@ -55,7 +55,6 @@ export class NodeClientRequest extends ClientRequest {
55
55
  private chunks: Array<{
56
56
  chunk?: string | Buffer
57
57
  encoding?: BufferEncoding
58
- callback?: ClientRequestWriteCallback
59
58
  }> = []
60
59
  private responseSource: 'mock' | 'bypass' = 'mock'
61
60
  private capturedError?: NodeJS.ErrnoException
@@ -89,36 +88,20 @@ export class NodeClientRequest extends ClientRequest {
89
88
  write(...args: ClientRequestWriteArgs): boolean {
90
89
  const [chunk, encoding, callback] = normalizeClientRequestWriteArgs(args)
91
90
  this.log('write:', { chunk, encoding, callback })
92
-
93
- this.chunks.push({
94
- chunk,
95
- encoding,
96
- callback: (error?: Error | null) => {
97
- this.log('executing custom callback...')
98
-
99
- if (error) {
100
- this.log('error while writing chunk!', error)
101
- } else {
102
- this.log('request chunk successfully written!')
103
- }
104
-
105
- /**
106
- * Prevent invoking the callback if the written chunk is empty.
107
- * @see https://nodejs.org/api/http.html#requestwritechunk-encoding-callback
108
- */
109
- if (!chunk || chunk.length === 0) {
110
- this.log('written chunk is empty, skipping callback...')
111
- return
112
- }
113
-
114
- this.log('executing custom write callback:', callback)
115
- callback?.(error)
116
- },
117
- })
118
-
91
+ this.chunks.push({ chunk, encoding })
119
92
  this.requestBody = concatChunkToBuffer(chunk, this.requestBody)
120
93
  this.log('chunk successfully stored!', this.requestBody)
121
94
 
95
+ /**
96
+ * Prevent invoking the callback if the written chunk is empty.
97
+ * @see https://nodejs.org/api/http.html#requestwritechunk-encoding-callback
98
+ */
99
+ if (!chunk || chunk.length === 0) {
100
+ this.log('written chunk is empty, skipping callback...')
101
+ } else {
102
+ callback?.()
103
+ }
104
+
122
105
  // Do not write the request body chunks to prevent
123
106
  // the Socket from sending data to a potentially existing
124
107
  // server when there is a mocked response defined.
@@ -230,10 +213,12 @@ export class NodeClientRequest extends ClientRequest {
230
213
  // existing server.
231
214
  this.log('writing request chunks...', this.chunks)
232
215
 
233
- for (const { chunk, encoding, callback } of this.chunks) {
234
- encoding
235
- ? super.write(chunk, encoding, callback)
236
- : super.write(chunk, callback)
216
+ for (const { chunk, encoding } of this.chunks) {
217
+ if (encoding) {
218
+ super.write(chunk, encoding)
219
+ } else {
220
+ super.write(chunk)
221
+ }
237
222
  }
238
223
 
239
224
  this.once('error', (error) => {
@@ -296,7 +281,7 @@ export class NodeClientRequest extends ClientRequest {
296
281
 
297
282
  this.emit('response-internal', secondClone)
298
283
 
299
- this.log('response successfuly cloned, emitting "response" event...')
284
+ this.log('response successfully cloned, emitting "response" event...')
300
285
  return super.emit(event, firstClone, ...data.slice(1))
301
286
  } catch (error) {
302
287
  this.log('error when cloning response:', error)
@@ -310,7 +295,7 @@ export class NodeClientRequest extends ClientRequest {
310
295
 
311
296
  this.log('error:\n', error)
312
297
 
313
- // Supress certain errors while using the "mock" source.
298
+ // Suppress certain errors while using the "mock" source.
314
299
  // For example, no need to destroy this request if it connects
315
300
  // to a non-existing hostname but has a mocked response.
316
301
  if (
@@ -1,15 +1,23 @@
1
1
  import http from 'http'
2
2
  import https from 'https'
3
- import { HttpRequestEventMap } from '../../glossary'
3
+ import { invariant } from 'outvariant'
4
+ import { HttpRequestEventMap, IS_PATCHED_MODULE } from '../../glossary'
4
5
  import { Interceptor } from '../../Interceptor'
5
6
  import { AsyncEventEmitter } from '../../utils/AsyncEventEmitter'
6
7
  import { get } from './http.get'
7
8
  import { request } from './http.request'
8
9
  import { NodeClientOptions, Protocol } from './NodeClientRequest'
9
10
 
11
+ export type MaybePatchedModule<Module> = Module & {
12
+ [IS_PATCHED_MODULE]?: boolean
13
+ }
14
+
10
15
  export type ClientRequestEmitter = AsyncEventEmitter<HttpRequestEventMap>
11
16
 
12
- export type ClientRequestModules = Map<Protocol, typeof http | typeof https>
17
+ export type ClientRequestModules = Map<
18
+ Protocol,
19
+ MaybePatchedModule<typeof http> | MaybePatchedModule<typeof https>
20
+ >
13
21
 
14
22
  /**
15
23
  * Intercept requests made via the `ClientRequest` class.
@@ -33,7 +41,17 @@ export class ClientRequestInterceptor extends Interceptor<HttpRequestEventMap> {
33
41
  for (const [protocol, requestModule] of this.modules) {
34
42
  const { request: pureRequest, get: pureGet } = requestModule
35
43
 
44
+ invariant(
45
+ !requestModule[IS_PATCHED_MODULE],
46
+ 'Failed to patch the "%s" module: already patched.',
47
+ protocol
48
+ )
49
+
36
50
  this.subscriptions.push(() => {
51
+ Object.defineProperty(requestModule, IS_PATCHED_MODULE, {
52
+ value: undefined,
53
+ })
54
+
37
55
  requestModule.request = pureRequest
38
56
  requestModule.get = pureGet
39
57
 
@@ -55,6 +73,12 @@ export class ClientRequestInterceptor extends Interceptor<HttpRequestEventMap> {
55
73
  // Force a line break.
56
74
  get(protocol, options)
57
75
 
76
+ Object.defineProperty(requestModule, IS_PATCHED_MODULE, {
77
+ configurable: true,
78
+ enumerable: true,
79
+ value: true,
80
+ })
81
+
58
82
  log('native "%s" module patched!', protocol)
59
83
  }
60
84
  }
@@ -1,6 +1,8 @@
1
- import type {
1
+ import { invariant } from 'outvariant'
2
+ import {
2
3
  HttpRequestEventMap,
3
4
  InteractiveIsomorphicRequest,
5
+ IS_PATCHED_MODULE,
4
6
  } from '../../glossary'
5
7
  import { Interceptor } from '../../Interceptor'
6
8
  import { AsyncEventEmitter } from '../../utils/AsyncEventEmitter'
@@ -33,6 +35,11 @@ export class XMLHttpRequestInterceptor extends Interceptor<HttpRequestEventMap>
33
35
 
34
36
  const PureXMLHttpRequest = window.XMLHttpRequest
35
37
 
38
+ invariant(
39
+ !(PureXMLHttpRequest as any)[IS_PATCHED_MODULE],
40
+ 'Failed to patch the "XMLHttpRequest" module: already patched.'
41
+ )
42
+
36
43
  window.XMLHttpRequest = createXMLHttpRequestOverride({
37
44
  XMLHttpRequest: PureXMLHttpRequest,
38
45
  emitter: this.emitter,
@@ -41,7 +48,17 @@ export class XMLHttpRequestInterceptor extends Interceptor<HttpRequestEventMap>
41
48
 
42
49
  log('native "XMLHttpRequest" module patched!', window.XMLHttpRequest.name)
43
50
 
51
+ Object.defineProperty(window.XMLHttpRequest, IS_PATCHED_MODULE, {
52
+ enumerable: true,
53
+ configurable: true,
54
+ value: true,
55
+ })
56
+
44
57
  this.subscriptions.push(() => {
58
+ Object.defineProperty(window.XMLHttpRequest, IS_PATCHED_MODULE, {
59
+ value: undefined,
60
+ })
61
+
45
62
  window.XMLHttpRequest = PureXMLHttpRequest
46
63
  log(
47
64
  'native "XMLHttpRequest" module restored!',
@@ -4,10 +4,12 @@ import {
4
4
  objectToHeaders,
5
5
  headersToObject,
6
6
  } from 'headers-polyfill'
7
- import type {
7
+ import { invariant } from 'outvariant'
8
+ import {
8
9
  HttpRequestEventMap,
9
10
  InteractiveIsomorphicRequest,
10
11
  IsomorphicResponse,
12
+ IS_PATCHED_MODULE,
11
13
  } from '../../glossary'
12
14
  import { Interceptor } from '../../Interceptor'
13
15
  import { createLazyCallback } from '../../utils/createLazyCallback'
@@ -31,6 +33,11 @@ export class FetchInterceptor extends Interceptor<HttpRequestEventMap> {
31
33
  protected setup() {
32
34
  const pureFetch = globalThis.fetch
33
35
 
36
+ invariant(
37
+ !(pureFetch as any)[IS_PATCHED_MODULE],
38
+ 'Failed to patch the "fetch" module: already patched.'
39
+ )
40
+
34
41
  globalThis.fetch = async (input, init) => {
35
42
  const request = new Request(input, init)
36
43
 
@@ -75,13 +82,23 @@ export class FetchInterceptor extends Interceptor<HttpRequestEventMap> {
75
82
 
76
83
  this.emitter.emit('response', isomorphicRequest, isomorphicResponse)
77
84
 
78
- return new Response(mockedResponse.body, {
85
+ const response = new Response(mockedResponse.body, {
79
86
  ...isomorphicResponse,
80
87
  // `Response.headers` cannot be instantiated with the `Headers` polyfill.
81
88
  // Apparently, it halts if the `Headers` class contains unknown properties
82
89
  // (i.e. the internal `Headers.map`).
83
90
  headers: flattenHeadersObject(mockedResponse.headers || {}),
84
91
  })
92
+
93
+ // Set the "response.url" property to equal the intercepted request URL.
94
+ Object.defineProperty(response, 'url', {
95
+ writable: false,
96
+ enumerable: true,
97
+ configurable: false,
98
+ value: isomorphicRequest.url.href,
99
+ })
100
+
101
+ return response
85
102
  }
86
103
 
87
104
  this.log('no mocked response received!')
@@ -99,8 +116,19 @@ export class FetchInterceptor extends Interceptor<HttpRequestEventMap> {
99
116
  })
100
117
  }
101
118
 
119
+ Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {
120
+ enumerable: true,
121
+ configurable: true,
122
+ value: true,
123
+ })
124
+
102
125
  this.subscriptions.push(() => {
126
+ Object.defineProperty(globalThis.fetch, IS_PATCHED_MODULE, {
127
+ value: undefined,
128
+ })
129
+
103
130
  globalThis.fetch = pureFetch
131
+
104
132
  this.log('restored native "globalThis.fetch"!', globalThis.fetch.name)
105
133
  })
106
134
  }