msw 0.0.0-fetch.rc-14 → 0.0.0-fetch.rc-16

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 (38) hide show
  1. package/README.md +28 -10
  2. package/lib/browser/index.d.ts +0 -6
  3. package/lib/browser/index.js +25 -40
  4. package/lib/browser/index.mjs +25 -40
  5. package/lib/core/NetworkError.d.ts +2 -2
  6. package/lib/core/SetupApi.d.ts +0 -1
  7. package/lib/core/handlers/GraphQLHandler.js +2 -2
  8. package/lib/core/handlers/GraphQLHandler.mjs +2 -2
  9. package/lib/core/handlers/{RestHandler.d.ts → HttpHandler.d.ts} +12 -12
  10. package/lib/core/handlers/{RestHandler.js → HttpHandler.js} +18 -18
  11. package/lib/core/handlers/{RestHandler.mjs → HttpHandler.mjs} +15 -15
  12. package/lib/core/{rest.d.ts → http.d.ts} +11 -11
  13. package/lib/core/{rest.js → http.js} +16 -16
  14. package/lib/core/http.mjs +22 -0
  15. package/lib/core/{rest.spec.js → http.spec.js} +3 -3
  16. package/lib/core/{rest.spec.mjs → http.spec.mjs} +3 -3
  17. package/lib/core/index.d.ts +2 -2
  18. package/lib/core/index.js +6 -6
  19. package/lib/core/index.mjs +6 -6
  20. package/lib/core/passthrough.d.ts +5 -2
  21. package/lib/core/sharedOptions.d.ts +45 -7
  22. package/lib/core/utils/handleRequest.js +13 -10
  23. package/lib/core/utils/handleRequest.mjs +13 -10
  24. package/lib/core/utils/logging/serializeResponse.js +16 -2
  25. package/lib/core/utils/logging/serializeResponse.mjs +6 -2
  26. package/lib/core/utils/request/onUnhandledRequest.js +6 -6
  27. package/lib/core/utils/request/onUnhandledRequest.mjs +7 -7
  28. package/lib/iife/index.js +494 -482
  29. package/lib/mockServiceWorker.js +20 -3
  30. package/lib/native/index.d.ts +0 -6
  31. package/lib/native/index.js +13 -17
  32. package/lib/native/index.mjs +13 -17
  33. package/lib/node/index.d.ts +0 -6
  34. package/lib/node/index.js +13 -17
  35. package/lib/node/index.mjs +13 -17
  36. package/package.json +5 -5
  37. package/lib/core/rest.mjs +0 -22
  38. /package/lib/core/{rest.spec.d.ts → http.spec.d.ts} +0 -0
@@ -2,13 +2,14 @@
2
2
  /* tslint:disable */
3
3
 
4
4
  /**
5
- * Mock Service Worker (0.0.0-fetch.rc-14).
5
+ * Mock Service Worker (0.0.0-fetch.rc-16).
6
6
  * @see https://github.com/mswjs/msw
7
7
  * - Please do NOT modify this file.
8
8
  * - Please do NOT serve this file on production.
9
9
  */
10
10
 
11
- const INTEGRITY_CHECKSUM = 'b24acb1451c726c44a3a37a0b8092d67'
11
+ const INTEGRITY_CHECKSUM = '42fb047ce943b9103a6ed499f86548c4'
12
+ const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
12
13
  const activeClientIds = new Set()
13
14
 
14
15
  self.addEventListener('install', function () {
@@ -154,6 +155,7 @@ async function handleRequest(event, requestId) {
154
155
  type: 'RESPONSE',
155
156
  payload: {
156
157
  requestId,
158
+ isMockedResponse: IS_MOCKED_RESPONSE in response,
157
159
  type: responseClone.type,
158
160
  status: responseClone.status,
159
161
  statusText: responseClone.statusText,
@@ -302,5 +304,20 @@ function sendToClient(client, message, transferrables = []) {
302
304
  }
303
305
 
304
306
  async function respondWithMock(response) {
305
- return new Response(response.body, response)
307
+ // Setting response status code to 0 is a no-op.
308
+ // However, when responding with a "Response.error()", the produced Response
309
+ // instance will have status code set to 0. Since it's not possible to create
310
+ // a Response instance with status code 0, handle that use-case separately.
311
+ if (response.status === 0) {
312
+ return Response.error()
313
+ }
314
+
315
+ const mockedResponse = new Response(response.body, response)
316
+
317
+ Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, {
318
+ value: true,
319
+ enumerable: true,
320
+ })
321
+
322
+ return mockedResponse
306
323
  }
@@ -35,11 +35,6 @@ interface SetupServer {
35
35
  * @see {@link https://mswjs.io/docs/api/setup-server/list-handlers `server.listHandlers()`}
36
36
  */
37
37
  listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
38
- /**
39
- * Lists all active request handlers.
40
- * @see {@link https://mswjs.io/docs/api/setup-server/print-handlers `server.print-handlers()`}
41
- */
42
- printHandlers(): void;
43
38
  events: LifeCycleEventEmitter<LifeCycleEventsMap>;
44
39
  }
45
40
 
@@ -54,7 +49,6 @@ declare class SetupServerApi extends SetupApi<LifeCycleEventsMap> implements Set
54
49
  */
55
50
  private init;
56
51
  listen(options?: Partial<SharedOptions>): void;
57
- printHandlers(): void;
58
52
  close(): void;
59
53
  }
60
54
 
@@ -69,7 +69,7 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
69
69
  * Subscribe to all requests that are using the interceptor object
70
70
  */
71
71
  init() {
72
- this.interceptor.on("request", (request, requestId) => __async(this, null, function* () {
72
+ this.interceptor.on("request", (_0) => __async(this, [_0], function* ({ request, requestId }) {
73
73
  const response = yield (0, import_handleRequest.handleRequest)(
74
74
  request,
75
75
  requestId,
@@ -82,13 +82,19 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
82
82
  }
83
83
  return;
84
84
  }));
85
- this.interceptor.on("response", (response, request, requestId) => {
86
- if (response.headers.get("x-powered-by") === "msw") {
87
- this.emitter.emit("response:mocked", response, request, requestId);
88
- } else {
89
- this.emitter.emit("response:bypass", response, request, requestId);
85
+ this.interceptor.on(
86
+ "response",
87
+ ({ response, isMockedResponse, request, requestId }) => {
88
+ this.emitter.emit(
89
+ isMockedResponse ? "response:mocked" : "response:bypass",
90
+ {
91
+ response,
92
+ request,
93
+ requestId
94
+ }
95
+ );
90
96
  }
91
- });
97
+ );
92
98
  }
93
99
  listen(options = {}) {
94
100
  this.resolvedOptions = (0, import_mergeRight.mergeRight)(
@@ -109,16 +115,6 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
109
115
  "https://github.com/mswjs/msw/issues/new/choose"
110
116
  );
111
117
  }
112
- printHandlers() {
113
- const handlers = this.listHandlers();
114
- handlers.forEach((handler) => {
115
- const { header, callFrame } = handler.info;
116
- const pragma = handler.info.hasOwnProperty("operationType") ? "[graphql]" : "[rest]";
117
- console.log(`${`${pragma} ${header}`}
118
- Declaration: ${callFrame}
119
- `);
120
- });
121
- }
122
118
  close() {
123
119
  this.dispose();
124
120
  }
@@ -49,7 +49,7 @@ var SetupServerApi = class extends SetupApi {
49
49
  * Subscribe to all requests that are using the interceptor object
50
50
  */
51
51
  init() {
52
- this.interceptor.on("request", (request, requestId) => __async(this, null, function* () {
52
+ this.interceptor.on("request", (_0) => __async(this, [_0], function* ({ request, requestId }) {
53
53
  const response = yield handleRequest(
54
54
  request,
55
55
  requestId,
@@ -62,13 +62,19 @@ var SetupServerApi = class extends SetupApi {
62
62
  }
63
63
  return;
64
64
  }));
65
- this.interceptor.on("response", (response, request, requestId) => {
66
- if (response.headers.get("x-powered-by") === "msw") {
67
- this.emitter.emit("response:mocked", response, request, requestId);
68
- } else {
69
- this.emitter.emit("response:bypass", response, request, requestId);
65
+ this.interceptor.on(
66
+ "response",
67
+ ({ response, isMockedResponse, request, requestId }) => {
68
+ this.emitter.emit(
69
+ isMockedResponse ? "response:mocked" : "response:bypass",
70
+ {
71
+ response,
72
+ request,
73
+ requestId
74
+ }
75
+ );
70
76
  }
71
- });
77
+ );
72
78
  }
73
79
  listen(options = {}) {
74
80
  this.resolvedOptions = mergeRight(
@@ -89,16 +95,6 @@ var SetupServerApi = class extends SetupApi {
89
95
  "https://github.com/mswjs/msw/issues/new/choose"
90
96
  );
91
97
  }
92
- printHandlers() {
93
- const handlers = this.listHandlers();
94
- handlers.forEach((handler) => {
95
- const { header, callFrame } = handler.info;
96
- const pragma = handler.info.hasOwnProperty("operationType") ? "[graphql]" : "[rest]";
97
- console.log(`${`${pragma} ${header}`}
98
- Declaration: ${callFrame}
99
- `);
100
- });
101
- }
102
98
  close() {
103
99
  this.dispose();
104
100
  }
@@ -35,11 +35,6 @@ interface SetupServer {
35
35
  * @see {@link https://mswjs.io/docs/api/setup-server/list-handlers `server.listHandlers()`}
36
36
  */
37
37
  listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any>>;
38
- /**
39
- * Lists all active request handlers.
40
- * @see {@link https://mswjs.io/docs/api/setup-server/print-handlers `server.print-handlers()`}
41
- */
42
- printHandlers(): void;
43
38
  events: LifeCycleEventEmitter<LifeCycleEventsMap>;
44
39
  }
45
40
 
@@ -54,7 +49,6 @@ declare class SetupServerApi extends SetupApi<LifeCycleEventsMap> implements Set
54
49
  */
55
50
  private init;
56
51
  listen(options?: Partial<SharedOptions>): void;
57
- printHandlers(): void;
58
52
  close(): void;
59
53
  }
60
54
 
package/lib/node/index.js CHANGED
@@ -69,7 +69,7 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
69
69
  * Subscribe to all requests that are using the interceptor object
70
70
  */
71
71
  init() {
72
- this.interceptor.on("request", (request, requestId) => __async(this, null, function* () {
72
+ this.interceptor.on("request", (_0) => __async(this, [_0], function* ({ request, requestId }) {
73
73
  const response = yield (0, import_handleRequest.handleRequest)(
74
74
  request,
75
75
  requestId,
@@ -82,13 +82,19 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
82
82
  }
83
83
  return;
84
84
  }));
85
- this.interceptor.on("response", (response, request, requestId) => {
86
- if (response.headers.get("x-powered-by") === "msw") {
87
- this.emitter.emit("response:mocked", response, request, requestId);
88
- } else {
89
- this.emitter.emit("response:bypass", response, request, requestId);
85
+ this.interceptor.on(
86
+ "response",
87
+ ({ response, isMockedResponse, request, requestId }) => {
88
+ this.emitter.emit(
89
+ isMockedResponse ? "response:mocked" : "response:bypass",
90
+ {
91
+ response,
92
+ request,
93
+ requestId
94
+ }
95
+ );
90
96
  }
91
- });
97
+ );
92
98
  }
93
99
  listen(options = {}) {
94
100
  this.resolvedOptions = (0, import_mergeRight.mergeRight)(
@@ -109,16 +115,6 @@ var SetupServerApi = class extends import_SetupApi.SetupApi {
109
115
  "https://github.com/mswjs/msw/issues/new/choose"
110
116
  );
111
117
  }
112
- printHandlers() {
113
- const handlers = this.listHandlers();
114
- handlers.forEach((handler) => {
115
- const { header, callFrame } = handler.info;
116
- const pragma = handler.info.hasOwnProperty("operationType") ? "[graphql]" : "[rest]";
117
- console.log(`${`${pragma} ${header}`}
118
- Declaration: ${callFrame}
119
- `);
120
- });
121
- }
122
118
  close() {
123
119
  this.dispose();
124
120
  }
@@ -46,7 +46,7 @@ var SetupServerApi = class extends SetupApi {
46
46
  * Subscribe to all requests that are using the interceptor object
47
47
  */
48
48
  init() {
49
- this.interceptor.on("request", (request, requestId) => __async(this, null, function* () {
49
+ this.interceptor.on("request", (_0) => __async(this, [_0], function* ({ request, requestId }) {
50
50
  const response = yield handleRequest(
51
51
  request,
52
52
  requestId,
@@ -59,13 +59,19 @@ var SetupServerApi = class extends SetupApi {
59
59
  }
60
60
  return;
61
61
  }));
62
- this.interceptor.on("response", (response, request, requestId) => {
63
- if (response.headers.get("x-powered-by") === "msw") {
64
- this.emitter.emit("response:mocked", response, request, requestId);
65
- } else {
66
- this.emitter.emit("response:bypass", response, request, requestId);
62
+ this.interceptor.on(
63
+ "response",
64
+ ({ response, isMockedResponse, request, requestId }) => {
65
+ this.emitter.emit(
66
+ isMockedResponse ? "response:mocked" : "response:bypass",
67
+ {
68
+ response,
69
+ request,
70
+ requestId
71
+ }
72
+ );
67
73
  }
68
- });
74
+ );
69
75
  }
70
76
  listen(options = {}) {
71
77
  this.resolvedOptions = mergeRight(
@@ -86,16 +92,6 @@ var SetupServerApi = class extends SetupApi {
86
92
  "https://github.com/mswjs/msw/issues/new/choose"
87
93
  );
88
94
  }
89
- printHandlers() {
90
- const handlers = this.listHandlers();
91
- handlers.forEach((handler) => {
92
- const { header, callFrame } = handler.info;
93
- const pragma = handler.info.hasOwnProperty("operationType") ? "[graphql]" : "[rest]";
94
- console.log(`${`${pragma} ${header}`}
95
- Declaration: ${callFrame}
96
- `);
97
- });
98
- }
99
95
  close() {
100
96
  this.dispose();
101
97
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msw",
3
- "version": "0.0.0-fetch.rc-14",
3
+ "version": "0.0.0-fetch.rc-16",
4
4
  "description": "Seamless REST/GraphQL API mocking library for browser and Node.js.",
5
5
  "main": "./lib/core/index.js",
6
6
  "module": "./lib/core/index.mjs",
@@ -113,7 +113,7 @@
113
113
  "@bundled-es-modules/js-levenshtein": "^2.0.1",
114
114
  "@bundled-es-modules/statuses": "^1.0.1",
115
115
  "@mswjs/cookies": "^1.0.0",
116
- "@mswjs/interceptors": "^0.22.13",
116
+ "@mswjs/interceptors": "^0.23.0",
117
117
  "@open-draft/until": "^2.1.0",
118
118
  "@types/cookie": "^0.4.1",
119
119
  "@types/js-levenshtein": "^1.1.1",
@@ -121,7 +121,7 @@
121
121
  "chalk": "^4.1.2",
122
122
  "chokidar": "^3.4.2",
123
123
  "formdata-node": "4.4.1",
124
- "graphql": "^15.0.0 || ^16.0.0",
124
+ "graphql": "^15.0.0 || ^16.7.0",
125
125
  "headers-polyfill": "^3.1.2",
126
126
  "inquirer": "^8.2.0",
127
127
  "is-node-process": "^1.2.0",
@@ -139,7 +139,7 @@
139
139
  "@commitlint/cli": "^16.1.0",
140
140
  "@commitlint/config-conventional": "^16.0.0",
141
141
  "@open-draft/test-server": "^0.4.2",
142
- "@ossjs/release": "^0.4.0",
142
+ "@ossjs/release": "^0.5.1",
143
143
  "@playwright/test": "^1.30.0",
144
144
  "@swc/core": "^1.3.35",
145
145
  "@swc/jest": "^0.2.24",
@@ -188,7 +188,7 @@
188
188
  "webpack-http-server": "^0.5.0"
189
189
  },
190
190
  "peerDependencies": {
191
- "typescript": ">= 4.4.x <= 5.0.x"
191
+ "typescript": ">= 4.4.x <= 5.1.x"
192
192
  },
193
193
  "peerDependenciesMeta": {
194
194
  "typescript": {
package/lib/core/rest.mjs DELETED
@@ -1,22 +0,0 @@
1
- import {
2
- RESTMethods,
3
- RestHandler
4
- } from './handlers/RestHandler.mjs';
5
- function createRestHandler(method) {
6
- return (path, resolver, options = {}) => {
7
- return new RestHandler(method, path, resolver, options);
8
- };
9
- }
10
- const rest = {
11
- all: createRestHandler(/.+/),
12
- head: createRestHandler(RESTMethods.HEAD),
13
- get: createRestHandler(RESTMethods.GET),
14
- post: createRestHandler(RESTMethods.POST),
15
- put: createRestHandler(RESTMethods.PUT),
16
- delete: createRestHandler(RESTMethods.DELETE),
17
- patch: createRestHandler(RESTMethods.PATCH),
18
- options: createRestHandler(RESTMethods.OPTIONS)
19
- };
20
- export {
21
- rest
22
- };
File without changes