@mswjs/interceptors 0.15.1 → 0.16.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.
Files changed (90) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +68 -49
  3. package/lib/BatchInterceptor.d.ts +18 -0
  4. package/lib/BatchInterceptor.js +79 -0
  5. package/lib/BatchInterceptor.js.map +1 -0
  6. package/lib/Interceptor.d.ts +49 -0
  7. package/lib/Interceptor.js +197 -0
  8. package/lib/Interceptor.js.map +1 -0
  9. package/lib/RemoteInterceptor.d.ts +24 -0
  10. package/lib/RemoteInterceptor.js +216 -0
  11. package/lib/RemoteInterceptor.js.map +1 -0
  12. package/lib/glossary.d.ts +32 -0
  13. package/lib/glossary.js +3 -0
  14. package/lib/glossary.js.map +1 -0
  15. package/lib/index.d.ts +2 -2
  16. package/lib/index.js +2 -2
  17. package/lib/index.js.map +1 -1
  18. package/lib/interceptors/ClientRequest/NodeClientRequest.d.ts +5 -5
  19. package/lib/interceptors/ClientRequest/NodeClientRequest.js +56 -15
  20. package/lib/interceptors/ClientRequest/NodeClientRequest.js.map +1 -1
  21. package/lib/interceptors/ClientRequest/http.get.d.ts +2 -3
  22. package/lib/interceptors/ClientRequest/http.get.js +2 -5
  23. package/lib/interceptors/ClientRequest/http.get.js.map +1 -1
  24. package/lib/interceptors/ClientRequest/http.request.d.ts +2 -3
  25. package/lib/interceptors/ClientRequest/http.request.js +3 -6
  26. package/lib/interceptors/ClientRequest/http.request.js.map +1 -1
  27. package/lib/interceptors/ClientRequest/index.d.ts +14 -4
  28. package/lib/interceptors/ClientRequest/index.js +59 -46
  29. package/lib/interceptors/ClientRequest/index.js.map +1 -1
  30. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js +7 -2
  31. package/lib/interceptors/ClientRequest/utils/getIncomingMessageBody.js.map +1 -1
  32. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.d.ts +11 -4
  33. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js +110 -58
  34. package/lib/interceptors/XMLHttpRequest/XMLHttpRequestOverride.js.map +1 -1
  35. package/lib/interceptors/XMLHttpRequest/index.d.ts +11 -5
  36. package/lib/interceptors/XMLHttpRequest/index.js +43 -25
  37. package/lib/interceptors/XMLHttpRequest/index.js.map +1 -1
  38. package/lib/interceptors/fetch/index.d.ts +8 -2
  39. package/lib/interceptors/fetch/index.js +120 -68
  40. package/lib/interceptors/fetch/index.js.map +1 -1
  41. package/lib/presets/browser.d.ts +3 -1
  42. package/lib/presets/browser.js +2 -2
  43. package/lib/presets/browser.js.map +1 -1
  44. package/lib/presets/node.d.ts +3 -1
  45. package/lib/presets/node.js +1 -1
  46. package/lib/presets/node.js.map +1 -1
  47. package/lib/utils/AsyncEventEmitter.d.ts +29 -0
  48. package/lib/utils/AsyncEventEmitter.js +241 -0
  49. package/lib/utils/AsyncEventEmitter.js.map +1 -0
  50. package/lib/utils/createLazyCallback.d.ts +11 -0
  51. package/lib/utils/createLazyCallback.js +75 -0
  52. package/lib/utils/createLazyCallback.js.map +1 -0
  53. package/lib/utils/nextTick.d.ts +2 -0
  54. package/lib/utils/nextTick.js +16 -0
  55. package/lib/utils/nextTick.js.map +1 -0
  56. package/lib/utils/toIsoResponse.d.ts +1 -1
  57. package/package.json +6 -6
  58. package/src/BatchInterceptor.test.ts +113 -0
  59. package/src/BatchInterceptor.ts +60 -0
  60. package/src/Interceptor.test.ts +166 -0
  61. package/src/Interceptor.ts +226 -0
  62. package/src/RemoteInterceptor.ts +176 -0
  63. package/src/glossary.ts +42 -0
  64. package/src/index.ts +2 -2
  65. package/src/interceptors/ClientRequest/NodeClientRequest.test.ts +87 -70
  66. package/src/interceptors/ClientRequest/NodeClientRequest.ts +139 -100
  67. package/src/interceptors/ClientRequest/http.get.ts +7 -11
  68. package/src/interceptors/ClientRequest/http.request.ts +8 -12
  69. package/src/interceptors/ClientRequest/index.test.ts +43 -0
  70. package/src/interceptors/ClientRequest/index.ts +46 -46
  71. package/src/interceptors/ClientRequest/utils/getIncomingMessageBody.test.ts +9 -0
  72. package/src/interceptors/ClientRequest/utils/getIncomingMessageBody.ts +9 -2
  73. package/src/interceptors/XMLHttpRequest/XMLHttpRequestOverride.ts +215 -159
  74. package/src/interceptors/XMLHttpRequest/index.ts +41 -23
  75. package/src/interceptors/fetch/index.ts +81 -55
  76. package/src/presets/browser.ts +3 -3
  77. package/src/presets/node.ts +3 -3
  78. package/src/utils/AsyncEventEmitter.test.ts +68 -0
  79. package/src/utils/AsyncEventEmitter.ts +171 -0
  80. package/src/utils/createLazyCallback.ts +49 -0
  81. package/src/utils/nextTick.ts +11 -0
  82. package/src/utils/toIsoResponse.ts +1 -1
  83. package/lib/createInterceptor.d.ts +0 -54
  84. package/lib/createInterceptor.js +0 -27
  85. package/lib/createInterceptor.js.map +0 -1
  86. package/lib/remote.d.ts +0 -21
  87. package/lib/remote.js +0 -178
  88. package/lib/remote.js.map +0 -1
  89. package/src/createInterceptor.ts +0 -100
  90. package/src/remote.ts +0 -174
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (_) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __read = (this && this.__read) || function (o, n) {
65
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
66
+ if (!m) return o;
67
+ var i = m.call(o), r, ar = [], e;
68
+ try {
69
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
70
+ }
71
+ catch (error) { e = { error: error }; }
72
+ finally {
73
+ try {
74
+ if (r && !r.done && (m = i["return"])) m.call(i);
75
+ }
76
+ finally { if (e) throw e.error; }
77
+ }
78
+ return ar;
79
+ };
80
+ Object.defineProperty(exports, "__esModule", { value: true });
81
+ exports.RemoteHttpResolver = exports.requestReviver = exports.RemoteHttpInterceptor = void 0;
82
+ var headers_polyfill_1 = require("headers-polyfill");
83
+ var Interceptor_1 = require("./Interceptor");
84
+ var BatchInterceptor_1 = require("./BatchInterceptor");
85
+ var ClientRequest_1 = require("./interceptors/ClientRequest");
86
+ var XMLHttpRequest_1 = require("./interceptors/XMLHttpRequest");
87
+ var createLazyCallback_1 = require("./utils/createLazyCallback");
88
+ var toIsoResponse_1 = require("./utils/toIsoResponse");
89
+ var RemoteHttpInterceptor = /** @class */ (function (_super) {
90
+ __extends(RemoteHttpInterceptor, _super);
91
+ function RemoteHttpInterceptor() {
92
+ return _super.call(this, {
93
+ name: 'remote-interceptor',
94
+ interceptors: [
95
+ new ClientRequest_1.ClientRequestInterceptor(),
96
+ new XMLHttpRequest_1.XMLHttpRequestInterceptor(),
97
+ ],
98
+ }) || this;
99
+ }
100
+ RemoteHttpInterceptor.prototype.setup = function () {
101
+ var _this = this;
102
+ _super.prototype.setup.call(this);
103
+ var handleParentMessage;
104
+ this.on('request', function (request) { return __awaiter(_this, void 0, void 0, function () {
105
+ var serializedRequest, responsePromise;
106
+ var _a;
107
+ return __generator(this, function (_b) {
108
+ serializedRequest = JSON.stringify(request);
109
+ this.log('sent serialized request to the child:', serializedRequest);
110
+ (_a = process.send) === null || _a === void 0 ? void 0 : _a.call(process, "request:" + serializedRequest);
111
+ responsePromise = new Promise(function (resolve) {
112
+ handleParentMessage = function (message) {
113
+ if (typeof message !== 'string') {
114
+ return resolve();
115
+ }
116
+ if (message.startsWith("response:" + request.id)) {
117
+ var _a = __read(message.match(/^response:.+?:(.+)$/) || [], 2), serializedResponse = _a[1];
118
+ if (!serializedResponse) {
119
+ return resolve();
120
+ }
121
+ var mockedResponse = JSON.parse(serializedResponse);
122
+ request.respondWith(mockedResponse);
123
+ resolve();
124
+ }
125
+ };
126
+ });
127
+ // Listen for the mocked resopnse message from the parent.
128
+ this.log('add "message" listener to the parent process', handleParentMessage);
129
+ process.addListener('message', handleParentMessage);
130
+ return [2 /*return*/, responsePromise];
131
+ });
132
+ }); });
133
+ this.subscriptions.push(function () {
134
+ process.removeListener('message', handleParentMessage);
135
+ });
136
+ };
137
+ return RemoteHttpInterceptor;
138
+ }(BatchInterceptor_1.BatchInterceptor));
139
+ exports.RemoteHttpInterceptor = RemoteHttpInterceptor;
140
+ function requestReviver(key, value) {
141
+ switch (key) {
142
+ case 'url':
143
+ return new URL(value);
144
+ case 'headers':
145
+ return new headers_polyfill_1.Headers(value);
146
+ default:
147
+ return value;
148
+ }
149
+ }
150
+ exports.requestReviver = requestReviver;
151
+ var RemoteHttpResolver = /** @class */ (function (_super) {
152
+ __extends(RemoteHttpResolver, _super);
153
+ function RemoteHttpResolver(options) {
154
+ var _this = _super.call(this, RemoteHttpResolver.symbol) || this;
155
+ _this.process = options.process;
156
+ return _this;
157
+ }
158
+ RemoteHttpResolver.prototype.setup = function () {
159
+ var _this = this;
160
+ var log = this.log.extend('setup');
161
+ var handleChildMessage = function (message) { return __awaiter(_this, void 0, void 0, function () {
162
+ var _a, serializedRequest, isomorphicRequest, interactiveIsomorphicRequest, _b, mockedResponse, serializedResponse;
163
+ var _this = this;
164
+ return __generator(this, function (_c) {
165
+ switch (_c.label) {
166
+ case 0:
167
+ log('received message from child!', message);
168
+ if (typeof message !== 'string' || !message.startsWith('request:')) {
169
+ log('unknown message, ignoring...');
170
+ return [2 /*return*/];
171
+ }
172
+ _a = __read(message.match(/^request:(.+)$/) || [], 2), serializedRequest = _a[1];
173
+ if (!serializedRequest) {
174
+ return [2 /*return*/];
175
+ }
176
+ isomorphicRequest = JSON.parse(serializedRequest, requestReviver);
177
+ log('parsed intercepted request', isomorphicRequest);
178
+ interactiveIsomorphicRequest = __assign(__assign({}, isomorphicRequest), { respondWith: createLazyCallback_1.createLazyCallback() });
179
+ this.emitter.emit('request', interactiveIsomorphicRequest);
180
+ return [4 /*yield*/, this.emitter.untilIdle('request')];
181
+ case 1:
182
+ _c.sent();
183
+ return [4 /*yield*/, interactiveIsomorphicRequest.respondWith.invoked()];
184
+ case 2:
185
+ _b = __read.apply(void 0, [_c.sent(), 1]), mockedResponse = _b[0];
186
+ log('event.respondWith called with:', mockedResponse);
187
+ serializedResponse = JSON.stringify(mockedResponse);
188
+ this.process.send("response:" + isomorphicRequest.id + ":" + serializedResponse, function (error) {
189
+ if (error) {
190
+ return;
191
+ }
192
+ if (mockedResponse) {
193
+ // Emit an optimistinc "response" event at this point,
194
+ // not to rely on the back-and-forth signaling for the sake of the event.
195
+ _this.emitter.emit('response', isomorphicRequest, toIsoResponse_1.toIsoResponse(mockedResponse));
196
+ }
197
+ });
198
+ log('sent serialized mocked response to the parent:', serializedResponse);
199
+ return [2 /*return*/];
200
+ }
201
+ });
202
+ }); };
203
+ this.subscriptions.push(function () {
204
+ _this.process.removeListener('message', handleChildMessage);
205
+ log('removed the "message" listener from the child process!');
206
+ });
207
+ log('adding a "message" listener to the child process');
208
+ this.process.addListener('message', handleChildMessage);
209
+ this.process.once('error', function () { return _this.dispose(); });
210
+ this.process.once('exit', function () { return _this.dispose(); });
211
+ };
212
+ RemoteHttpResolver.symbol = Symbol('remote-resolver');
213
+ return RemoteHttpResolver;
214
+ }(Interceptor_1.Interceptor));
215
+ exports.RemoteHttpResolver = RemoteHttpResolver;
216
+ //# sourceMappingURL=RemoteInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteInterceptor.js","sourceRoot":"","sources":["../src/RemoteInterceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { HeadersObject, Headers } from 'headers-polyfill';
2
+ import type { LazyCallback } from './utils/createLazyCallback';
3
+ export declare type RequestCredentials = 'omit' | 'include' | 'same-origin';
4
+ export interface IsomorphicRequest {
5
+ id: string;
6
+ url: URL;
7
+ method: string;
8
+ headers: Headers;
9
+ /**
10
+ * The value of the request client's "credentials" option
11
+ * or a compatible alternative (i.e. `withCredentials` for `XMLHttpRequest`).
12
+ * Always equals to "omit" in Node.js.
13
+ */
14
+ credentials: RequestCredentials;
15
+ body?: string;
16
+ }
17
+ export interface InteractiveIsomorphicRequest extends IsomorphicRequest {
18
+ respondWith: LazyCallback<(mockedResponse: MockedResponse) => void>;
19
+ }
20
+ export interface IsomorphicResponse {
21
+ status: number;
22
+ statusText: string;
23
+ headers: Headers;
24
+ body?: string;
25
+ }
26
+ export interface MockedResponse extends Omit<Partial<IsomorphicResponse>, 'headers'> {
27
+ headers?: HeadersObject;
28
+ }
29
+ export declare type HttpRequestEventMap = {
30
+ request(request: InteractiveIsomorphicRequest): Promise<void> | void;
31
+ response(request: IsomorphicRequest, response: IsomorphicResponse): Promise<void> | void;
32
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=glossary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossary.js","sourceRoot":"","sources":["../src/glossary.ts"],"names":[],"mappings":""}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './createInterceptor';
2
- export * from './remote';
1
+ export * from './glossary';
2
+ export * from './RemoteInterceptor';
3
3
  export { getCleanUrl } from './utils/getCleanUrl';
package/lib/index.js CHANGED
@@ -11,8 +11,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.getCleanUrl = void 0;
14
- __exportStar(require("./createInterceptor"), exports);
15
- __exportStar(require("./remote"), exports);
14
+ __exportStar(require("./glossary"), exports);
15
+ __exportStar(require("./RemoteInterceptor"), exports);
16
16
  /* Utils */
17
17
  var getCleanUrl_1 = require("./utils/getCleanUrl");
18
18
  Object.defineProperty(exports, "getCleanUrl", { enumerable: true, get: function () { return getCleanUrl_1.getCleanUrl; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sDAAmC;AACnC,2CAAwB;AAExB,WAAW;AACX,mDAAiD;AAAxC,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,sDAAmC;AAEnC,WAAW;AACX,mDAAiD;AAAxC,0GAAA,WAAW,OAAA"}
@@ -1,12 +1,13 @@
1
1
  /// <reference types="node" />
2
+ import type { Debugger } from 'debug';
2
3
  import { ClientRequest } from 'http';
3
- import type { Observer, Resolver } from '../../createInterceptor';
4
+ import type { ClientRequestEmitter } from '.';
4
5
  import { NormalizedClientRequestArgs } from './utils/normalizeClientRequestArgs';
5
6
  import { ClientRequestWriteArgs } from './utils/normalizeClientRequestWriteArgs';
6
7
  export declare type Protocol = 'http' | 'https';
7
8
  export interface NodeClientOptions {
8
- observer: Observer;
9
- resolver: Resolver;
9
+ emitter: ClientRequestEmitter;
10
+ log: Debugger;
10
11
  }
11
12
  export declare class NodeClientRequest extends ClientRequest {
12
13
  /**
@@ -17,8 +18,7 @@ export declare class NodeClientRequest extends ClientRequest {
17
18
  private url;
18
19
  private options;
19
20
  private response;
20
- private resolver;
21
- private observer;
21
+ private emitter;
22
22
  private log;
23
23
  private chunks;
24
24
  private responseSource;
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
29
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
30
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -84,7 +95,6 @@ var __values = (this && this.__values) || function(o) {
84
95
  };
85
96
  Object.defineProperty(exports, "__esModule", { value: true });
86
97
  exports.NodeClientRequest = void 0;
87
- var debug_1 = require("debug");
88
98
  var http_1 = require("http");
89
99
  var until_1 = require("@open-draft/until");
90
100
  var lib_1 = require("headers-polyfill/lib");
@@ -96,6 +106,8 @@ var getIncomingMessageBody_1 = require("./utils/getIncomingMessageBody");
96
106
  var bodyBufferToString_1 = require("./utils/bodyBufferToString");
97
107
  var normalizeClientRequestWriteArgs_1 = require("./utils/normalizeClientRequestWriteArgs");
98
108
  var cloneIncomingMessage_1 = require("./utils/cloneIncomingMessage");
109
+ var createLazyCallback_1 = require("../../utils/createLazyCallback");
110
+ var outvariant_1 = require("outvariant");
99
111
  var NodeClientRequest = /** @class */ (function (_super) {
100
112
  __extends(NodeClientRequest, _super);
101
113
  function NodeClientRequest(_a, options) {
@@ -104,7 +116,7 @@ var NodeClientRequest = /** @class */ (function (_super) {
104
116
  _this.chunks = [];
105
117
  _this.responseSource = 'mock';
106
118
  _this.requestBody = [];
107
- _this.log = debug_1.debug("http " + requestOptions.method + " " + url.href);
119
+ _this.log = options.log.extend("request " + requestOptions.method + " " + url.href);
108
120
  _this.log('constructing ClientRequest using options:', {
109
121
  url: url,
110
122
  requestOptions: requestOptions,
@@ -112,8 +124,7 @@ var NodeClientRequest = /** @class */ (function (_super) {
112
124
  });
113
125
  _this.url = url;
114
126
  _this.options = requestOptions;
115
- _this.resolver = options.resolver;
116
- _this.observer = options.observer;
127
+ _this.emitter = options.emitter;
117
128
  // Construct a mocked response message.
118
129
  _this.response = new http_1.IncomingMessage(_this.socket);
119
130
  return _this;
@@ -138,9 +149,13 @@ var NodeClientRequest = /** @class */ (function (_super) {
138
149
  _this.log('request chunk successfully written!');
139
150
  }
140
151
  /**
141
- * @todo Do not call callback if the `chunk` is empty.
152
+ * Prevent invoking the callback if the written chunk is empty.
142
153
  * @see https://nodejs.org/api/http.html#requestwritechunk-encoding-callback
143
154
  */
155
+ if (!chunk || chunk.length === 0) {
156
+ _this.log('written chunk is empty, skipping callback...');
157
+ return;
158
+ }
144
159
  _this.log('executing custom write callback:', callback);
145
160
  callback === null || callback === void 0 ? void 0 : callback(error);
146
161
  },
@@ -163,16 +178,37 @@ var NodeClientRequest = /** @class */ (function (_super) {
163
178
  this.log('normalized arguments:', { chunk: chunk, encoding: encoding, callback: callback });
164
179
  var requestBody = this.getRequestBody(chunk);
165
180
  var isomorphicRequest = this.toIsomorphicRequest(requestBody);
166
- this.observer.emit('request', isomorphicRequest);
167
- this.log('executing response resolver...');
181
+ var interactiveIsomorphicRequest = __assign(__assign({}, isomorphicRequest), { respondWith: createLazyCallback_1.createLazyCallback({
182
+ maxCalls: 1,
183
+ maxCallsCallback: function () {
184
+ outvariant_1.invariant(false, 'Failed to respond to "%s %s" request: the "request" event has already been responded to.', isomorphicRequest.method, isomorphicRequest.url.href);
185
+ },
186
+ }) });
187
+ // Notify the interceptor about the request.
188
+ // This will call any "request" listeners the users have.
189
+ this.log('emitting the "request" event for %d listener(s)...', this.emitter.listenerCount('request'));
190
+ this.emitter.emit('request', interactiveIsomorphicRequest);
168
191
  // Execute the resolver Promise like a side-effect.
169
192
  // Node.js 16 forces "ClientRequest.end" to be synchronous and return "this".
170
- until_1.until(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
171
- return [2 /*return*/, this.resolver(isomorphicRequest, this.response)];
172
- }); }); }).then(function (_a) {
193
+ until_1.until(function () { return __awaiter(_this, void 0, void 0, function () {
194
+ var _a, mockedResponse;
195
+ return __generator(this, function (_b) {
196
+ switch (_b.label) {
197
+ case 0: return [4 /*yield*/, this.emitter.untilIdle('request')];
198
+ case 1:
199
+ _b.sent();
200
+ this.log('all request listeners have been resolved!');
201
+ return [4 /*yield*/, interactiveIsomorphicRequest.respondWith.invoked()];
202
+ case 2:
203
+ _a = __read.apply(void 0, [_b.sent(), 1]), mockedResponse = _a[0];
204
+ this.log('event.respondWith called with:', mockedResponse);
205
+ return [2 /*return*/, mockedResponse];
206
+ }
207
+ });
208
+ }); }).then(function (_a) {
173
209
  var e_1, _b;
174
210
  var _c = __read(_a, 2), resolverException = _c[0], mockedResponse = _c[1];
175
- _this.log('resolver has finished');
211
+ _this.log('the listeners promise awaited!');
176
212
  // Halt the request whenever the resolver throws an exception.
177
213
  if (resolverException) {
178
214
  _this.log('encountered resolver exception, aborting request...', resolverException);
@@ -188,10 +224,10 @@ var NodeClientRequest = /** @class */ (function (_super) {
188
224
  _this.log(isomorphicResponse.status, isomorphicResponse.statusText, isomorphicResponse.body, '(MOCKED)');
189
225
  callback === null || callback === void 0 ? void 0 : callback();
190
226
  _this.log('emitting the custom "response" event...');
191
- _this.observer.emit('response', isomorphicRequest, isomorphicResponse);
227
+ _this.emitter.emit('response', isomorphicRequest, isomorphicResponse);
192
228
  return _this;
193
229
  }
194
- _this.log('no mocked response found!');
230
+ _this.log('no mocked response received!');
195
231
  // Set the response source to "bypass".
196
232
  // Any errors emitted past this point are not suppressed.
197
233
  _this.responseSource = 'bypass';
@@ -237,7 +273,7 @@ var NodeClientRequest = /** @class */ (function (_super) {
237
273
  this.log(response.statusCode, response.statusMessage, responseBody);
238
274
  this.log('original response headers:', response.headers);
239
275
  this.log('emitting the custom "response" event...');
240
- this.observer.emit('response', isomorphicRequest, {
276
+ this.emitter.emit('response', isomorphicRequest, {
241
277
  status: response.statusCode || 200,
242
278
  statusText: response.statusMessage || 'OK',
243
279
  headers: lib_1.objectToHeaders(response.headers),
@@ -414,7 +450,12 @@ var NodeClientRequest = /** @class */ (function (_super) {
414
450
  * The list of internal Node.js errors to suppress while
415
451
  * using the "mock" response source.
416
452
  */
417
- NodeClientRequest.suppressErrorCodes = ['ENOTFOUND', 'ECONNREFUSED', 'ECONNRESET'];
453
+ NodeClientRequest.suppressErrorCodes = [
454
+ 'ENOTFOUND',
455
+ 'ECONNREFUSED',
456
+ 'ECONNRESET',
457
+ 'EAI_AGAIN',
458
+ ];
418
459
  return NodeClientRequest;
419
460
  }(http_1.ClientRequest));
420
461
  exports.NodeClientRequest = NodeClientRequest;
@@ -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,5 +1,4 @@
1
1
  import { ClientRequest } from 'node:http';
2
- import { Observer, Resolver } from '../../createInterceptor';
3
- import { Protocol } from './NodeClientRequest';
2
+ import { NodeClientOptions, Protocol } from './NodeClientRequest';
4
3
  import { ClientRequestArgs } from './utils/normalizeClientRequestArgs';
5
- export declare function get(protocol: Protocol, resolver: Resolver, observer: Observer): (...args: ClientRequestArgs) => ClientRequest;
4
+ export declare function get(protocol: Protocol, options: NodeClientOptions): (...args: ClientRequestArgs) => ClientRequest;
@@ -24,17 +24,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.get = void 0;
25
25
  var NodeClientRequest_1 = require("./NodeClientRequest");
26
26
  var normalizeClientRequestArgs_1 = require("./utils/normalizeClientRequestArgs");
27
- function get(protocol, resolver, observer) {
27
+ function get(protocol, options) {
28
28
  return function () {
29
29
  var args = [];
30
30
  for (var _i = 0; _i < arguments.length; _i++) {
31
31
  args[_i] = arguments[_i];
32
32
  }
33
33
  var clientRequestArgs = normalizeClientRequestArgs_1.normalizeClientRequestArgs.apply(void 0, __spreadArray([protocol + ":"], __read(args)));
34
- var request = new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, {
35
- resolver: resolver,
36
- observer: observer,
37
- });
34
+ var request = new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, options);
38
35
  /**
39
36
  * @note https://nodejs.org/api/http.html#httpgetoptions-callback
40
37
  * "http.get" sets the method to "GET" and calls "req.end()" automatically.
@@ -1 +1 @@
1
- {"version":3,"file":"http.get.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,yDAAiE;AACjE,iFAG2C;AAE3C,SAAgB,GAAG,CACjB,QAAkB,EAClB,QAAkB,EAClB,QAAkB;IAElB,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,IAAM,iBAAiB,GAAG,uDAA0B,8BAC/C,QAAQ,MAAG,UACX,IAAI,GACR,CAAA;QACD,IAAM,OAAO,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,EAAE;YACvD,QAAQ,UAAA;YACR,QAAQ,UAAA;SACT,CAAC,CAAA;QAEF;;;WAGG;QACH,OAAO,CAAC,GAAG,EAAE,CAAA;QAEb,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAvBD,kBAuBC"}
1
+ {"version":3,"file":"http.get.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,yDAI4B;AAC5B,iFAG2C;AAE3C,SAAgB,GAAG,CAAC,QAAkB,EAAE,OAA0B;IAChE,OAAO;QAAC,cAA0B;aAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;YAA1B,yBAA0B;;QAChC,IAAM,iBAAiB,GAAG,uDAA0B,8BAC/C,QAAQ,MAAG,UACX,IAAI,GACR,CAAA;QACD,IAAM,OAAO,GAAG,IAAI,qCAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAEjE;;;WAGG;QACH,OAAO,CAAC,GAAG,EAAE,CAAA;QAEb,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAhBD,kBAgBC"}
@@ -1,5 +1,4 @@
1
1
  import { ClientRequest } from 'http';
2
- import { Observer, Resolver } from '../../createInterceptor';
3
- import { Protocol } from './NodeClientRequest';
2
+ import { NodeClientOptions, Protocol } from './NodeClientRequest';
4
3
  import { ClientRequestArgs } from './utils/normalizeClientRequestArgs';
5
- export declare function request(protocol: Protocol, resolver: Resolver, observer: Observer): (...args: ClientRequestArgs) => ClientRequest;
4
+ export declare function request(protocol: Protocol, options: NodeClientOptions): (...args: ClientRequestArgs) => ClientRequest;
@@ -25,8 +25,8 @@ exports.request = void 0;
25
25
  var debug_1 = require("debug");
26
26
  var NodeClientRequest_1 = require("./NodeClientRequest");
27
27
  var normalizeClientRequestArgs_1 = require("./utils/normalizeClientRequestArgs");
28
- var log = debug_1.debug('http.request');
29
- function request(protocol, resolver, observer) {
28
+ var log = debug_1.debug('http request');
29
+ function request(protocol, options) {
30
30
  return function () {
31
31
  var args = [];
32
32
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -34,10 +34,7 @@ function request(protocol, resolver, observer) {
34
34
  }
35
35
  log('request call (protocol "%s"):', protocol, args);
36
36
  var clientRequestArgs = normalizeClientRequestArgs_1.normalizeClientRequestArgs.apply(void 0, __spreadArray([protocol + ":"], __read(args)));
37
- return new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, {
38
- observer: observer,
39
- resolver: resolver,
40
- });
37
+ return new NodeClientRequest_1.NodeClientRequest(clientRequestArgs, options);
41
38
  };
42
39
  }
43
40
  exports.request = request;
@@ -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,+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"}
1
+ {"version":3,"file":"http.request.js","sourceRoot":"","sources":["../../../src/interceptors/ClientRequest/http.request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAE7B,yDAI4B;AAC5B,iFAG2C;AAE3C,IAAM,GAAG,GAAG,aAAK,CAAC,cAAc,CAAC,CAAA;AAEjC,SAAgB,OAAO,CAAC,QAAkB,EAAE,OAA0B;IACpE,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,OAAO,CAAC,CAAA;IAC1D,CAAC,CAAA;AACH,CAAC;AAVD,0BAUC"}
@@ -1,9 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import http from 'http';
3
3
  import https from 'https';
4
- import { Interceptor } from '../../createInterceptor';
5
- export declare type RequestModule = typeof http | typeof https;
4
+ import { HttpRequestEventMap } from '../../glossary';
5
+ import { Interceptor } from '../../Interceptor';
6
+ import { AsyncEventEmitter } from '../../utils/AsyncEventEmitter';
7
+ import { Protocol } from './NodeClientRequest';
8
+ export declare type ClientRequestEmitter = AsyncEventEmitter<HttpRequestEventMap>;
9
+ export declare type ClientRequestModules = Map<Protocol, typeof http | typeof https>;
6
10
  /**
7
- * Intercepts requests issued by native "http" and "https" modules.
11
+ * Intercept requests made via the `ClientRequest` class.
12
+ * Such requests include `http.get`, `https.request`, etc.
8
13
  */
9
- export declare const interceptClientRequest: Interceptor;
14
+ export declare class ClientRequestInterceptor extends Interceptor<HttpRequestEventMap> {
15
+ static symbol: symbol;
16
+ private modules;
17
+ constructor();
18
+ protected setup(): void;
19
+ }