msw 0.42.0 → 0.42.3
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/README.md +7 -1
- package/lib/iife/index.js +30 -18
- package/lib/iife/index.js.map +1 -1
- package/lib/index.d.ts +9 -0
- package/lib/index.js +28 -16
- package/lib/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/lib/native/index.js +37 -19
- package/lib/native/index.mjs +37 -19
- package/lib/node/index.js +37 -19
- package/lib/node/index.js.map +1 -1
- package/lib/node/index.mjs +37 -19
- package/lib/node/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/node/index.mjs
CHANGED
|
@@ -382,8 +382,8 @@ function parseMultipartData(data2, headers) {
|
|
|
382
382
|
}
|
|
383
383
|
const parsedBody = {};
|
|
384
384
|
try {
|
|
385
|
-
for (const
|
|
386
|
-
const [contentHeaders, ...rest] =
|
|
385
|
+
for (const field2 of fields) {
|
|
386
|
+
const [contentHeaders, ...rest] = field2.split("\r\n\r\n");
|
|
387
387
|
const contentBody = rest.join("\r\n\r\n");
|
|
388
388
|
const { contentType: contentType2, filename, name } = parseContentHeaders(contentHeaders);
|
|
389
389
|
const value = filename === void 0 ? contentBody : new File([contentBody], filename, { type: contentType2 });
|
|
@@ -929,6 +929,23 @@ var RestHandler = class extends RequestHandler {
|
|
|
929
929
|
}
|
|
930
930
|
};
|
|
931
931
|
|
|
932
|
+
// src/context/field.ts
|
|
933
|
+
import { invariant } from "outvariant";
|
|
934
|
+
var field = (fieldName, fieldValue) => {
|
|
935
|
+
return (res) => {
|
|
936
|
+
validateFieldName(fieldName);
|
|
937
|
+
const prevBody = jsonParse(res.body) || {};
|
|
938
|
+
const nextBody = mergeRight(prevBody, { [fieldName]: fieldValue });
|
|
939
|
+
return json(nextBody)(res);
|
|
940
|
+
};
|
|
941
|
+
};
|
|
942
|
+
function validateFieldName(fieldName) {
|
|
943
|
+
invariant(fieldName.trim() !== "", devUtils.formatMessage("Failed to set a custom field on a GraphQL response: field name cannot be empty."));
|
|
944
|
+
invariant(fieldName !== "data", devUtils.formatMessage('Failed to set a custom "%s" field on a mocked GraphQL response: forbidden field name. Did you mean to call "ctx.data()" instead?', fieldName));
|
|
945
|
+
invariant(fieldName !== "errors", devUtils.formatMessage('Failed to set a custom "%s" field on a mocked GraphQL response: forbidden field name. Did you mean to call "ctx.errors()" instead?', fieldName));
|
|
946
|
+
invariant(fieldName !== "extensions", devUtils.formatMessage('Failed to set a custom "%s" field on a mocked GraphQL response: forbidden field name. Did you mean to call "ctx.extensions()" instead?', fieldName));
|
|
947
|
+
}
|
|
948
|
+
|
|
932
949
|
// src/utils/internal/tryCatch.ts
|
|
933
950
|
function tryCatch(fn, onException) {
|
|
934
951
|
try {
|
|
@@ -944,7 +961,8 @@ var graphqlContext = __spreadProps(__spreadValues({}, defaultContext), {
|
|
|
944
961
|
data,
|
|
945
962
|
extensions,
|
|
946
963
|
errors,
|
|
947
|
-
cookie
|
|
964
|
+
cookie,
|
|
965
|
+
field
|
|
948
966
|
});
|
|
949
967
|
function isDocumentNode(value) {
|
|
950
968
|
if (value == null) {
|
|
@@ -1132,7 +1150,7 @@ function readResponseCookies(request, response2) {
|
|
|
1132
1150
|
|
|
1133
1151
|
// src/utils/handleRequest.ts
|
|
1134
1152
|
async function handleRequest(request, handlers, options, emitter, handleRequestOptions) {
|
|
1135
|
-
var _a, _b, _c, _d;
|
|
1153
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
1136
1154
|
emitter.emit("request:start", request);
|
|
1137
1155
|
if (request.headers.get("x-msw-bypass") === "true") {
|
|
1138
1156
|
emitter.emit("request:end", request);
|
|
@@ -1170,18 +1188,12 @@ async function handleRequest(request, handlers, options, emitter, handleRequestO
|
|
|
1170
1188
|
}
|
|
1171
1189
|
readResponseCookies(request, response2);
|
|
1172
1190
|
emitter.emit("request:match", request);
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
var _a3;
|
|
1180
|
-
(_a3 = handleRequestOptions == null ? void 0 : handleRequestOptions.onMockedResponseSent) == null ? void 0 : _a3.call(handleRequestOptions, transformedResponse, requiredLookupResult);
|
|
1181
|
-
emitter.emit("request:end", request);
|
|
1182
|
-
resolve(transformedResponse);
|
|
1183
|
-
}, (_c2 = response2.delay) != null ? _c2 : 0);
|
|
1184
|
-
});
|
|
1191
|
+
const requiredLookupResult = lookupResult;
|
|
1192
|
+
const transformedResponse = ((_e = handleRequestOptions == null ? void 0 : handleRequestOptions.transformResponse) == null ? void 0 : _e.call(handleRequestOptions, response2)) || response2;
|
|
1193
|
+
(_f = handleRequestOptions == null ? void 0 : handleRequestOptions.onMockedResponse) == null ? void 0 : _f.call(handleRequestOptions, transformedResponse, requiredLookupResult);
|
|
1194
|
+
(_g = handleRequestOptions == null ? void 0 : handleRequestOptions.onMockedResponseSent) == null ? void 0 : _g.call(handleRequestOptions, transformedResponse, requiredLookupResult);
|
|
1195
|
+
emitter.emit("request:end", request);
|
|
1196
|
+
return transformedResponse;
|
|
1185
1197
|
}
|
|
1186
1198
|
|
|
1187
1199
|
// src/utils/internal/pipeEvents.ts
|
|
@@ -1217,7 +1229,7 @@ function createSetupServer(...interceptors) {
|
|
|
1217
1229
|
let resolvedOptions = {};
|
|
1218
1230
|
const interceptor = new BatchInterceptor({
|
|
1219
1231
|
name: "setup-server",
|
|
1220
|
-
interceptors
|
|
1232
|
+
interceptors: interceptors.map((Interceptor2) => new Interceptor2())
|
|
1221
1233
|
});
|
|
1222
1234
|
interceptor.on("request", async function setupServerListener(request) {
|
|
1223
1235
|
const mockedRequest = parseIsomorphicRequest(request);
|
|
@@ -1227,11 +1239,17 @@ function createSetupServer(...interceptors) {
|
|
|
1227
1239
|
status: response3.status,
|
|
1228
1240
|
statusText: response3.statusText,
|
|
1229
1241
|
headers: response3.headers.all(),
|
|
1230
|
-
body: response3.body
|
|
1242
|
+
body: response3.body,
|
|
1243
|
+
delay: response3.delay
|
|
1231
1244
|
};
|
|
1232
1245
|
}
|
|
1233
1246
|
});
|
|
1234
1247
|
if (response2) {
|
|
1248
|
+
if (response2.delay) {
|
|
1249
|
+
await new Promise((resolve) => {
|
|
1250
|
+
setTimeout(resolve, response2.delay);
|
|
1251
|
+
});
|
|
1252
|
+
}
|
|
1235
1253
|
request.respondWith(response2);
|
|
1236
1254
|
}
|
|
1237
1255
|
return;
|
|
@@ -1290,7 +1308,7 @@ function createSetupServer(...interceptors) {
|
|
|
1290
1308
|
}
|
|
1291
1309
|
|
|
1292
1310
|
// src/node/setupServer.ts
|
|
1293
|
-
var setupServer = createSetupServer(
|
|
1311
|
+
var setupServer = createSetupServer(ClientRequestInterceptor, XMLHttpRequestInterceptor);
|
|
1294
1312
|
export {
|
|
1295
1313
|
setupServer
|
|
1296
1314
|
};
|