msw 1.3.1 → 2.0.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.
- package/README.md +32 -29
- package/browser/package.json +5 -0
- package/cli/init.js +3 -3
- package/config/constants.js +1 -2
- package/lib/browser/index.d.ts +104 -0
- package/lib/browser/index.js +751 -0
- package/lib/browser/index.mjs +733 -0
- package/lib/core/GraphQLHandler-b42ca96f.d.ts +74 -0
- package/lib/core/HttpResponse.d.ts +2 -0
- package/lib/core/HttpResponse.js +94 -0
- package/lib/core/HttpResponse.mjs +77 -0
- package/lib/core/RequestHandler-1a5dbdc7.d.ts +172 -0
- package/lib/core/SetupApi.d.ts +26 -0
- package/lib/core/SetupApi.js +83 -0
- package/lib/core/SetupApi.mjs +63 -0
- package/lib/core/bypass.d.ts +16 -0
- package/lib/core/bypass.js +36 -0
- package/lib/core/bypass.mjs +16 -0
- package/lib/core/delay.d.ts +18 -0
- package/lib/core/delay.js +92 -0
- package/lib/core/delay.mjs +72 -0
- package/lib/core/graphql.d.ts +109 -0
- package/lib/core/graphql.js +112 -0
- package/lib/core/graphql.mjs +96 -0
- package/lib/core/handlers/GraphQLHandler.d.ts +5 -0
- package/lib/core/handlers/GraphQLHandler.js +145 -0
- package/lib/core/handlers/GraphQLHandler.mjs +130 -0
- package/lib/core/handlers/HttpHandler.d.ts +62 -0
- package/lib/core/handlers/HttpHandler.js +149 -0
- package/lib/core/handlers/HttpHandler.mjs +133 -0
- package/lib/core/handlers/RequestHandler.d.ts +2 -0
- package/lib/core/handlers/RequestHandler.js +180 -0
- package/lib/core/handlers/RequestHandler.mjs +162 -0
- package/lib/core/http.d.ts +26 -0
- package/lib/core/http.js +39 -0
- package/lib/core/http.mjs +22 -0
- package/lib/core/http.spec.d.ts +2 -0
- package/lib/core/http.spec.js +15 -0
- package/lib/core/http.spec.mjs +14 -0
- package/lib/core/index.d.ts +18 -0
- package/lib/core/index.js +49 -0
- package/lib/core/index.mjs +28 -0
- package/lib/core/passthrough.d.ts +17 -0
- package/lib/core/passthrough.js +32 -0
- package/lib/core/passthrough.mjs +12 -0
- package/lib/core/sharedOptions.d.ts +66 -0
- package/lib/core/sharedOptions.js +16 -0
- package/lib/core/sharedOptions.mjs +0 -0
- package/lib/core/typeUtils.d.ts +7 -0
- package/lib/core/typeUtils.js +16 -0
- package/lib/core/typeUtils.mjs +0 -0
- package/lib/core/utils/HttpResponse/decorators.d.ts +12 -0
- package/lib/core/utils/HttpResponse/decorators.js +80 -0
- package/lib/core/utils/HttpResponse/decorators.mjs +52 -0
- package/lib/core/utils/getResponse.d.ts +2 -0
- package/lib/core/utils/getResponse.js +64 -0
- package/lib/core/utils/getResponse.mjs +44 -0
- package/lib/core/utils/handleRequest.d.ts +30 -0
- package/lib/core/utils/handleRequest.js +102 -0
- package/lib/core/utils/handleRequest.mjs +82 -0
- package/lib/core/utils/internal/Disposable.d.ts +7 -0
- package/lib/core/utils/internal/Disposable.js +53 -0
- package/lib/core/utils/internal/Disposable.mjs +33 -0
- package/lib/core/utils/internal/checkGlobals.d.ts +3 -0
- package/lib/core/utils/internal/checkGlobals.js +33 -0
- package/lib/core/utils/internal/checkGlobals.mjs +13 -0
- package/lib/core/utils/internal/devUtils.d.ts +19 -0
- package/lib/core/utils/internal/devUtils.js +40 -0
- package/lib/core/utils/internal/devUtils.mjs +20 -0
- package/lib/core/utils/internal/getCallFrame.d.ts +6 -0
- package/lib/core/utils/internal/getCallFrame.js +40 -0
- package/lib/core/utils/internal/getCallFrame.mjs +20 -0
- package/lib/core/utils/internal/isIterable.d.ts +6 -0
- package/lib/core/utils/internal/isIterable.js +29 -0
- package/lib/core/utils/internal/isIterable.mjs +9 -0
- package/lib/core/utils/internal/isObject.d.ts +6 -0
- package/lib/core/utils/internal/isObject.js +26 -0
- package/lib/core/utils/internal/isObject.mjs +6 -0
- package/lib/core/utils/internal/isStringEqual.d.ts +6 -0
- package/lib/core/utils/internal/isStringEqual.js +26 -0
- package/lib/core/utils/internal/isStringEqual.mjs +6 -0
- package/lib/core/utils/internal/jsonParse.d.ts +7 -0
- package/lib/core/utils/internal/jsonParse.js +30 -0
- package/lib/core/utils/internal/jsonParse.mjs +10 -0
- package/lib/core/utils/internal/mergeRight.d.ts +7 -0
- package/lib/core/utils/internal/mergeRight.js +39 -0
- package/lib/core/utils/internal/mergeRight.mjs +19 -0
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +5 -0
- package/lib/core/utils/internal/parseGraphQLRequest.js +184 -0
- package/lib/core/utils/internal/parseGraphQLRequest.mjs +165 -0
- package/lib/core/utils/internal/parseMultipartData.d.ts +10 -0
- package/lib/core/utils/internal/parseMultipartData.js +81 -0
- package/lib/core/utils/internal/parseMultipartData.mjs +61 -0
- package/lib/core/utils/internal/pipeEvents.d.ts +8 -0
- package/lib/core/utils/internal/pipeEvents.js +34 -0
- package/lib/core/utils/internal/pipeEvents.mjs +14 -0
- package/lib/core/utils/internal/requestHandlerUtils.d.ts +8 -0
- package/lib/core/utils/internal/requestHandlerUtils.js +36 -0
- package/lib/core/utils/internal/requestHandlerUtils.mjs +16 -0
- package/lib/core/utils/internal/toReadonlyArray.d.ts +6 -0
- package/lib/core/utils/internal/toReadonlyArray.js +28 -0
- package/lib/core/utils/internal/toReadonlyArray.mjs +8 -0
- package/lib/core/utils/internal/tryCatch.d.ts +3 -0
- package/lib/core/utils/internal/tryCatch.js +31 -0
- package/lib/core/utils/internal/tryCatch.mjs +11 -0
- package/lib/core/utils/internal/uuidv4.d.ts +3 -0
- package/lib/core/utils/internal/uuidv4.js +26 -0
- package/lib/core/utils/internal/uuidv4.mjs +6 -0
- package/lib/core/utils/logging/getStatusCodeColor.d.ts +11 -0
- package/lib/core/utils/logging/getStatusCodeColor.js +39 -0
- package/lib/core/utils/logging/getStatusCodeColor.mjs +19 -0
- package/lib/core/utils/logging/getTimestamp.d.ts +6 -0
- package/lib/core/utils/logging/getTimestamp.js +27 -0
- package/lib/core/utils/logging/getTimestamp.mjs +7 -0
- package/lib/core/utils/logging/serializeRequest.d.ts +12 -0
- package/lib/core/utils/logging/serializeRequest.js +55 -0
- package/lib/core/utils/logging/serializeRequest.mjs +35 -0
- package/lib/core/utils/logging/serializeResponse.d.ts +9 -0
- package/lib/core/utils/logging/serializeResponse.js +69 -0
- package/lib/core/utils/logging/serializeResponse.mjs +39 -0
- package/lib/core/utils/matching/matchRequestUrl.d.ts +19 -0
- package/lib/core/utils/matching/matchRequestUrl.js +50 -0
- package/lib/core/utils/matching/matchRequestUrl.mjs +30 -0
- package/lib/core/utils/matching/normalizePath.d.ts +12 -0
- package/lib/core/utils/matching/normalizePath.js +32 -0
- package/lib/core/utils/matching/normalizePath.mjs +12 -0
- package/lib/core/utils/request/getPublicUrlFromRequest.d.ts +7 -0
- package/lib/core/utils/request/getPublicUrlFromRequest.js +30 -0
- package/lib/core/utils/request/getPublicUrlFromRequest.mjs +10 -0
- package/lib/core/utils/request/getRequestCookies.d.ts +8 -0
- package/lib/core/utils/request/getRequestCookies.js +88 -0
- package/lib/core/utils/request/getRequestCookies.mjs +60 -0
- package/lib/core/utils/request/onUnhandledRequest.d.ts +12 -0
- package/lib/core/utils/request/onUnhandledRequest.js +193 -0
- package/lib/core/utils/request/onUnhandledRequest.mjs +165 -0
- package/lib/core/utils/request/readResponseCookies.d.ts +3 -0
- package/lib/core/utils/request/readResponseCookies.js +45 -0
- package/lib/core/utils/request/readResponseCookies.mjs +27 -0
- package/lib/core/utils/toResponseInit.d.ts +3 -0
- package/lib/core/utils/toResponseInit.js +30 -0
- package/lib/core/utils/toResponseInit.mjs +10 -0
- package/lib/core/utils/url/cleanUrl.d.ts +7 -0
- package/lib/core/utils/url/cleanUrl.js +31 -0
- package/lib/core/utils/url/cleanUrl.mjs +11 -0
- package/lib/core/utils/url/getAbsoluteUrl.d.ts +6 -0
- package/lib/core/utils/url/getAbsoluteUrl.js +37 -0
- package/lib/core/utils/url/getAbsoluteUrl.mjs +17 -0
- package/lib/core/utils/url/isAbsoluteUrl.d.ts +6 -0
- package/lib/core/utils/url/isAbsoluteUrl.js +26 -0
- package/lib/core/utils/url/isAbsoluteUrl.mjs +6 -0
- package/lib/iife/index.js +6238 -12395
- package/lib/mockServiceWorker.js +82 -93
- package/lib/native/index.d.ts +67 -7
- package/lib/native/index.js +74 -1500
- package/lib/native/index.mjs +69 -1514
- package/lib/node/index.d.ts +68 -9
- package/lib/node/index.js +77 -1508
- package/lib/node/index.mjs +71 -1521
- package/native/package.json +2 -1
- package/node/package.json +2 -1
- package/package.json +55 -25
- package/lib/SetupServerApi-1855d9c6.d.ts +0 -20
- package/lib/glossary-de6278a9.d.ts +0 -385
- package/lib/iife/index.js.map +0 -1
- package/lib/index.d.ts +0 -365
- package/lib/index.js +0 -2295
- package/lib/index.js.map +0 -1
- package/lib/node/index.js.map +0 -1
- package/lib/node/index.mjs.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { OperationTypeNode, DocumentNode, GraphQLError } from 'graphql';
|
|
2
|
+
import { g as RequestHandlerDefaultInfo, D as DefaultBodyType, R as RequestHandler, a as ResponseResolver, c as RequestHandlerOptions } from './RequestHandler-1a5dbdc7.js';
|
|
3
|
+
import { Path } from './utils/matching/matchRequestUrl.js';
|
|
4
|
+
|
|
5
|
+
interface ParsedGraphQLQuery {
|
|
6
|
+
operationType: OperationTypeNode;
|
|
7
|
+
operationName?: string;
|
|
8
|
+
}
|
|
9
|
+
type ParsedGraphQLRequest<VariablesType extends GraphQLVariables = GraphQLVariables> = (ParsedGraphQLQuery & {
|
|
10
|
+
query: string;
|
|
11
|
+
variables?: VariablesType;
|
|
12
|
+
}) | undefined;
|
|
13
|
+
declare function parseDocumentNode(node: DocumentNode): ParsedGraphQLQuery;
|
|
14
|
+
type GraphQLParsedOperationsMap = Record<string, string[]>;
|
|
15
|
+
type GraphQLMultipartRequestBody = {
|
|
16
|
+
operations: string;
|
|
17
|
+
map?: string;
|
|
18
|
+
} & {
|
|
19
|
+
[fileName: string]: File;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Determines if a given request can be considered a GraphQL request.
|
|
23
|
+
* Does not parse the query and does not guarantee its validity.
|
|
24
|
+
*/
|
|
25
|
+
declare function parseGraphQLRequest(request: Request): Promise<ParsedGraphQLRequest>;
|
|
26
|
+
|
|
27
|
+
type ExpectedOperationTypeNode = OperationTypeNode | 'all';
|
|
28
|
+
type GraphQLHandlerNameSelector = DocumentNode | RegExp | string;
|
|
29
|
+
type GraphQLVariables = Record<string, any>;
|
|
30
|
+
interface GraphQLHandlerInfo extends RequestHandlerDefaultInfo {
|
|
31
|
+
operationType: ExpectedOperationTypeNode;
|
|
32
|
+
operationName: GraphQLHandlerNameSelector;
|
|
33
|
+
}
|
|
34
|
+
type GraphQLResolverExtras<Variables extends GraphQLVariables> = {
|
|
35
|
+
query: string;
|
|
36
|
+
operationName: string;
|
|
37
|
+
variables: Variables;
|
|
38
|
+
};
|
|
39
|
+
type GraphQLRequestBody<VariablesType extends GraphQLVariables> = GraphQLJsonRequestBody<VariablesType> | GraphQLMultipartRequestBody | Record<string, any> | undefined;
|
|
40
|
+
interface GraphQLJsonRequestBody<Variables extends GraphQLVariables> {
|
|
41
|
+
query: string;
|
|
42
|
+
variables?: Variables;
|
|
43
|
+
}
|
|
44
|
+
interface GraphQLResponseBody<BodyType extends DefaultBodyType> {
|
|
45
|
+
data?: BodyType;
|
|
46
|
+
errors?: readonly Partial<GraphQLError>[];
|
|
47
|
+
}
|
|
48
|
+
declare function isDocumentNode(value: DocumentNode | any): value is DocumentNode;
|
|
49
|
+
declare class GraphQLHandler extends RequestHandler<GraphQLHandlerInfo, ParsedGraphQLRequest, GraphQLResolverExtras<any>> {
|
|
50
|
+
private endpoint;
|
|
51
|
+
constructor(operationType: ExpectedOperationTypeNode, operationName: GraphQLHandlerNameSelector, endpoint: Path, resolver: ResponseResolver<GraphQLResolverExtras<any>, any, any>, options?: RequestHandlerOptions);
|
|
52
|
+
parse(args: {
|
|
53
|
+
request: Request;
|
|
54
|
+
}): Promise<ParsedGraphQLRequest<GraphQLVariables>>;
|
|
55
|
+
predicate(args: {
|
|
56
|
+
request: Request;
|
|
57
|
+
parsedResult: ParsedGraphQLRequest;
|
|
58
|
+
}): boolean;
|
|
59
|
+
protected extendResolverArgs(args: {
|
|
60
|
+
request: Request;
|
|
61
|
+
parsedResult: ParsedGraphQLRequest<GraphQLVariables>;
|
|
62
|
+
}): {
|
|
63
|
+
query: string;
|
|
64
|
+
operationName: string;
|
|
65
|
+
variables: GraphQLVariables;
|
|
66
|
+
};
|
|
67
|
+
log(args: {
|
|
68
|
+
request: Request;
|
|
69
|
+
response: Response;
|
|
70
|
+
parsedResult: ParsedGraphQLRequest;
|
|
71
|
+
}): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export { ExpectedOperationTypeNode as E, GraphQLHandler as G, ParsedGraphQLRequest as P, GraphQLVariables as a, GraphQLRequestBody as b, GraphQLJsonRequestBody as c, GraphQLHandlerNameSelector as d, GraphQLResolverExtras as e, GraphQLResponseBody as f, ParsedGraphQLQuery as g, GraphQLParsedOperationsMap as h, GraphQLMultipartRequestBody as i, parseGraphQLRequest as j, GraphQLHandlerInfo as k, isDocumentNode as l, parseDocumentNode as p };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var HttpResponse_exports = {};
|
|
20
|
+
__export(HttpResponse_exports, {
|
|
21
|
+
HttpResponse: () => HttpResponse
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(HttpResponse_exports);
|
|
24
|
+
var import_decorators = require("./utils/HttpResponse/decorators.js");
|
|
25
|
+
class HttpResponse extends Response {
|
|
26
|
+
constructor(body, init) {
|
|
27
|
+
const responseInit = (0, import_decorators.normalizeResponseInit)(init);
|
|
28
|
+
super(body, responseInit);
|
|
29
|
+
(0, import_decorators.decorateResponse)(this, responseInit);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a `Response` with a `Content-Type: "text/plain"` body.
|
|
33
|
+
* @example
|
|
34
|
+
* HttpResponse.text('hello world')
|
|
35
|
+
* HttpResponse.text('Error', { status: 500 })
|
|
36
|
+
*/
|
|
37
|
+
static text(body, init) {
|
|
38
|
+
const responseInit = (0, import_decorators.normalizeResponseInit)(init);
|
|
39
|
+
responseInit.headers.set("Content-Type", "text/plain");
|
|
40
|
+
return new HttpResponse(body, responseInit);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a `Response` with a `Content-Type: "application/json"` body.
|
|
44
|
+
* @example
|
|
45
|
+
* HttpResponse.json({ firstName: 'John' })
|
|
46
|
+
* HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })
|
|
47
|
+
*/
|
|
48
|
+
static json(body, init) {
|
|
49
|
+
const responseInit = (0, import_decorators.normalizeResponseInit)(init);
|
|
50
|
+
responseInit.headers.set("Content-Type", "application/json");
|
|
51
|
+
return new HttpResponse(
|
|
52
|
+
JSON.stringify(body),
|
|
53
|
+
responseInit
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a `Response` with a `Content-Type: "application/xml"` body.
|
|
58
|
+
* @example
|
|
59
|
+
* HttpResponse.xml(`<user name="John" />`)
|
|
60
|
+
* HttpResponse.xml(`<article id="abc-123" />`, { status: 201 })
|
|
61
|
+
*/
|
|
62
|
+
static xml(body, init) {
|
|
63
|
+
const responseInit = (0, import_decorators.normalizeResponseInit)(init);
|
|
64
|
+
responseInit.headers.set("Content-Type", "text/xml");
|
|
65
|
+
return new HttpResponse(body, responseInit);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create a `Response` with an `ArrayBuffer` body.
|
|
69
|
+
* @example
|
|
70
|
+
* const buffer = new ArrayBuffer(3)
|
|
71
|
+
* const view = new Uint8Array(buffer)
|
|
72
|
+
* view.set([1, 2, 3])
|
|
73
|
+
*
|
|
74
|
+
* HttpResponse.arrayBuffer(buffer)
|
|
75
|
+
*/
|
|
76
|
+
static arrayBuffer(body, init) {
|
|
77
|
+
const responseInit = (0, import_decorators.normalizeResponseInit)(init);
|
|
78
|
+
if (body) {
|
|
79
|
+
responseInit.headers.set("Content-Length", body.byteLength.toString());
|
|
80
|
+
}
|
|
81
|
+
return new HttpResponse(body, responseInit);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create a `Response` with a `FormData` body.
|
|
85
|
+
* @example
|
|
86
|
+
* const data = new FormData()
|
|
87
|
+
* data.set('name', 'Alice')
|
|
88
|
+
*
|
|
89
|
+
* HttpResponse.formData(data)
|
|
90
|
+
*/
|
|
91
|
+
static formData(body, init) {
|
|
92
|
+
return new HttpResponse(body, (0, import_decorators.normalizeResponseInit)(init));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import {
|
|
2
|
+
decorateResponse,
|
|
3
|
+
normalizeResponseInit
|
|
4
|
+
} from './utils/HttpResponse/decorators.mjs';
|
|
5
|
+
class HttpResponse extends Response {
|
|
6
|
+
constructor(body, init) {
|
|
7
|
+
const responseInit = normalizeResponseInit(init);
|
|
8
|
+
super(body, responseInit);
|
|
9
|
+
decorateResponse(this, responseInit);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a `Response` with a `Content-Type: "text/plain"` body.
|
|
13
|
+
* @example
|
|
14
|
+
* HttpResponse.text('hello world')
|
|
15
|
+
* HttpResponse.text('Error', { status: 500 })
|
|
16
|
+
*/
|
|
17
|
+
static text(body, init) {
|
|
18
|
+
const responseInit = normalizeResponseInit(init);
|
|
19
|
+
responseInit.headers.set("Content-Type", "text/plain");
|
|
20
|
+
return new HttpResponse(body, responseInit);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a `Response` with a `Content-Type: "application/json"` body.
|
|
24
|
+
* @example
|
|
25
|
+
* HttpResponse.json({ firstName: 'John' })
|
|
26
|
+
* HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })
|
|
27
|
+
*/
|
|
28
|
+
static json(body, init) {
|
|
29
|
+
const responseInit = normalizeResponseInit(init);
|
|
30
|
+
responseInit.headers.set("Content-Type", "application/json");
|
|
31
|
+
return new HttpResponse(
|
|
32
|
+
JSON.stringify(body),
|
|
33
|
+
responseInit
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a `Response` with a `Content-Type: "application/xml"` body.
|
|
38
|
+
* @example
|
|
39
|
+
* HttpResponse.xml(`<user name="John" />`)
|
|
40
|
+
* HttpResponse.xml(`<article id="abc-123" />`, { status: 201 })
|
|
41
|
+
*/
|
|
42
|
+
static xml(body, init) {
|
|
43
|
+
const responseInit = normalizeResponseInit(init);
|
|
44
|
+
responseInit.headers.set("Content-Type", "text/xml");
|
|
45
|
+
return new HttpResponse(body, responseInit);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a `Response` with an `ArrayBuffer` body.
|
|
49
|
+
* @example
|
|
50
|
+
* const buffer = new ArrayBuffer(3)
|
|
51
|
+
* const view = new Uint8Array(buffer)
|
|
52
|
+
* view.set([1, 2, 3])
|
|
53
|
+
*
|
|
54
|
+
* HttpResponse.arrayBuffer(buffer)
|
|
55
|
+
*/
|
|
56
|
+
static arrayBuffer(body, init) {
|
|
57
|
+
const responseInit = normalizeResponseInit(init);
|
|
58
|
+
if (body) {
|
|
59
|
+
responseInit.headers.set("Content-Length", body.byteLength.toString());
|
|
60
|
+
}
|
|
61
|
+
return new HttpResponse(body, responseInit);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a `Response` with a `FormData` body.
|
|
65
|
+
* @example
|
|
66
|
+
* const data = new FormData()
|
|
67
|
+
* data.set('name', 'Alice')
|
|
68
|
+
*
|
|
69
|
+
* HttpResponse.formData(data)
|
|
70
|
+
*/
|
|
71
|
+
static formData(body, init) {
|
|
72
|
+
return new HttpResponse(body, normalizeResponseInit(init));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
HttpResponse
|
|
77
|
+
};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { MaybePromise } from './typeUtils.js';
|
|
2
|
+
|
|
3
|
+
interface ResponseLookupResult {
|
|
4
|
+
handler: RequestHandler;
|
|
5
|
+
parsedResult?: any;
|
|
6
|
+
response?: Response;
|
|
7
|
+
}
|
|
8
|
+
interface ResponseResolutionContext {
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns a mocked response for a given request using following request handlers.
|
|
13
|
+
*/
|
|
14
|
+
declare const getResponse: <Handler extends RequestHandler<RequestHandlerDefaultInfo, any, any, RequestHandlerOptions>[]>(request: Request, handlers: Handler, resolutionContext?: ResponseResolutionContext) => Promise<ResponseLookupResult | null>;
|
|
15
|
+
|
|
16
|
+
interface HttpResponseInit extends ResponseInit {
|
|
17
|
+
type?: ResponseType;
|
|
18
|
+
}
|
|
19
|
+
declare const bodyType: unique symbol;
|
|
20
|
+
interface StrictRequest<BodyType extends DefaultBodyType> extends Request {
|
|
21
|
+
json(): Promise<BodyType>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Opaque `Response` type that supports strict body type.
|
|
25
|
+
*/
|
|
26
|
+
interface StrictResponse<BodyType extends DefaultBodyType> extends Response {
|
|
27
|
+
readonly [bodyType]: BodyType;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A drop-in replacement for the standard `Response` class
|
|
31
|
+
* to allow additional features, like mocking the response `Set-Cookie` header.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* new HttpResponse('Hello world', { status: 201 })
|
|
35
|
+
* HttpResponse.json({ name: 'John' })
|
|
36
|
+
* HttpResponse.formData(form)
|
|
37
|
+
*
|
|
38
|
+
* @see {@link https://mswjs.io/docs/api/http-response `HttpResponse` API reference}
|
|
39
|
+
*/
|
|
40
|
+
declare class HttpResponse extends Response {
|
|
41
|
+
constructor(body?: BodyInit | null, init?: HttpResponseInit);
|
|
42
|
+
/**
|
|
43
|
+
* Create a `Response` with a `Content-Type: "text/plain"` body.
|
|
44
|
+
* @example
|
|
45
|
+
* HttpResponse.text('hello world')
|
|
46
|
+
* HttpResponse.text('Error', { status: 500 })
|
|
47
|
+
*/
|
|
48
|
+
static text<BodyType extends string>(body?: BodyType | null, init?: HttpResponseInit): StrictResponse<BodyType>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a `Response` with a `Content-Type: "application/json"` body.
|
|
51
|
+
* @example
|
|
52
|
+
* HttpResponse.json({ firstName: 'John' })
|
|
53
|
+
* HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })
|
|
54
|
+
*/
|
|
55
|
+
static json<BodyType extends DefaultBodyType>(body?: BodyType | null, init?: HttpResponseInit): StrictResponse<BodyType>;
|
|
56
|
+
/**
|
|
57
|
+
* Create a `Response` with a `Content-Type: "application/xml"` body.
|
|
58
|
+
* @example
|
|
59
|
+
* HttpResponse.xml(`<user name="John" />`)
|
|
60
|
+
* HttpResponse.xml(`<article id="abc-123" />`, { status: 201 })
|
|
61
|
+
*/
|
|
62
|
+
static xml<BodyType extends string>(body?: BodyType | null, init?: HttpResponseInit): Response;
|
|
63
|
+
/**
|
|
64
|
+
* Create a `Response` with an `ArrayBuffer` body.
|
|
65
|
+
* @example
|
|
66
|
+
* const buffer = new ArrayBuffer(3)
|
|
67
|
+
* const view = new Uint8Array(buffer)
|
|
68
|
+
* view.set([1, 2, 3])
|
|
69
|
+
*
|
|
70
|
+
* HttpResponse.arrayBuffer(buffer)
|
|
71
|
+
*/
|
|
72
|
+
static arrayBuffer(body?: ArrayBuffer, init?: HttpResponseInit): Response;
|
|
73
|
+
/**
|
|
74
|
+
* Create a `Response` with a `FormData` body.
|
|
75
|
+
* @example
|
|
76
|
+
* const data = new FormData()
|
|
77
|
+
* data.set('name', 'Alice')
|
|
78
|
+
*
|
|
79
|
+
* HttpResponse.formData(data)
|
|
80
|
+
*/
|
|
81
|
+
static formData(body?: FormData, init?: HttpResponseInit): Response;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
type DefaultRequestMultipartBody = Record<string, string | File | Array<string | File>>;
|
|
85
|
+
type DefaultBodyType = Record<string, any> | DefaultRequestMultipartBody | string | number | boolean | null | undefined;
|
|
86
|
+
interface RequestHandlerDefaultInfo {
|
|
87
|
+
header: string;
|
|
88
|
+
}
|
|
89
|
+
interface RequestHandlerInternalInfo {
|
|
90
|
+
callFrame?: string;
|
|
91
|
+
}
|
|
92
|
+
type ResponseResolverReturnType<BodyType extends DefaultBodyType = undefined> = (BodyType extends undefined ? Response : StrictResponse<BodyType>) | undefined | void;
|
|
93
|
+
type MaybeAsyncResponseResolverReturnType<BodyType extends DefaultBodyType> = MaybePromise<ResponseResolverReturnType<BodyType>>;
|
|
94
|
+
type AsyncResponseResolverReturnType<BodyType extends DefaultBodyType> = MaybeAsyncResponseResolverReturnType<BodyType> | Generator<MaybeAsyncResponseResolverReturnType<BodyType>, MaybeAsyncResponseResolverReturnType<BodyType>, MaybeAsyncResponseResolverReturnType<BodyType>>;
|
|
95
|
+
type ResponseResolverInfo<ResolverExtraInfo extends Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType> = {
|
|
96
|
+
request: StrictRequest<RequestBodyType>;
|
|
97
|
+
} & ResolverExtraInfo;
|
|
98
|
+
type ResponseResolver<ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>, RequestBodyType extends DefaultBodyType = DefaultBodyType, ResponseBodyType extends DefaultBodyType = undefined> = (info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>) => AsyncResponseResolverReturnType<ResponseBodyType>;
|
|
99
|
+
interface RequestHandlerArgs<HandlerInfo, HandlerOptions extends RequestHandlerOptions> {
|
|
100
|
+
info: HandlerInfo;
|
|
101
|
+
resolver: ResponseResolver<any>;
|
|
102
|
+
options?: HandlerOptions;
|
|
103
|
+
}
|
|
104
|
+
interface RequestHandlerOptions {
|
|
105
|
+
once?: boolean;
|
|
106
|
+
}
|
|
107
|
+
interface RequestHandlerExecutionResult<ParsedResult extends Record<string, unknown> | undefined> {
|
|
108
|
+
handler: RequestHandler;
|
|
109
|
+
parsedResult?: ParsedResult;
|
|
110
|
+
request: Request;
|
|
111
|
+
response?: Response;
|
|
112
|
+
}
|
|
113
|
+
declare abstract class RequestHandler<HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo, ParsedResult extends Record<string, any> | undefined = any, ResolverExtras extends Record<string, unknown> = any, HandlerOptions extends RequestHandlerOptions = RequestHandlerOptions> {
|
|
114
|
+
info: HandlerInfo & RequestHandlerInternalInfo;
|
|
115
|
+
/**
|
|
116
|
+
* Indicates whether this request handler has been used
|
|
117
|
+
* (its resolver has successfully executed).
|
|
118
|
+
*/
|
|
119
|
+
isUsed: boolean;
|
|
120
|
+
protected resolver: ResponseResolver<ResolverExtras, any, any>;
|
|
121
|
+
private resolverGenerator?;
|
|
122
|
+
private resolverGeneratorResult?;
|
|
123
|
+
private options?;
|
|
124
|
+
constructor(args: RequestHandlerArgs<HandlerInfo, HandlerOptions>);
|
|
125
|
+
/**
|
|
126
|
+
* Determine if the intercepted request should be mocked.
|
|
127
|
+
*/
|
|
128
|
+
abstract predicate(args: {
|
|
129
|
+
request: Request;
|
|
130
|
+
parsedResult: ParsedResult;
|
|
131
|
+
resolutionContext?: ResponseResolutionContext;
|
|
132
|
+
}): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Print out the successfully handled request.
|
|
135
|
+
*/
|
|
136
|
+
abstract log(args: {
|
|
137
|
+
request: Request;
|
|
138
|
+
response: Response;
|
|
139
|
+
parsedResult: ParsedResult;
|
|
140
|
+
}): void;
|
|
141
|
+
/**
|
|
142
|
+
* Parse the intercepted request to extract additional information from it.
|
|
143
|
+
* Parsed result is then exposed to other methods of this request handler.
|
|
144
|
+
*/
|
|
145
|
+
parse(_args: {
|
|
146
|
+
request: Request;
|
|
147
|
+
resolutionContext?: ResponseResolutionContext;
|
|
148
|
+
}): Promise<ParsedResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Test if this handler matches the given request.
|
|
151
|
+
*/
|
|
152
|
+
test(args: {
|
|
153
|
+
request: Request;
|
|
154
|
+
resolutionContext?: ResponseResolutionContext;
|
|
155
|
+
}): Promise<boolean>;
|
|
156
|
+
protected extendResolverArgs(_args: {
|
|
157
|
+
request: Request;
|
|
158
|
+
parsedResult: ParsedResult;
|
|
159
|
+
}): ResolverExtras;
|
|
160
|
+
/**
|
|
161
|
+
* Execute this request handler and produce a mocked response
|
|
162
|
+
* using the given resolver function.
|
|
163
|
+
*/
|
|
164
|
+
run(args: {
|
|
165
|
+
request: StrictRequest<any>;
|
|
166
|
+
resolutionContext?: ResponseResolutionContext;
|
|
167
|
+
}): Promise<RequestHandlerExecutionResult<ParsedResult> | null>;
|
|
168
|
+
private wrapResolver;
|
|
169
|
+
private createExecutionResult;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export { AsyncResponseResolverReturnType as A, DefaultBodyType as D, HttpResponseInit as H, MaybeAsyncResponseResolverReturnType as M, RequestHandler as R, StrictRequest as S, ResponseResolver as a, ResponseResolverReturnType as b, RequestHandlerOptions as c, DefaultRequestMultipartBody as d, StrictResponse as e, HttpResponse as f, RequestHandlerDefaultInfo as g, ResponseLookupResult as h, ResponseResolutionContext as i, getResponse as j, RequestHandlerInternalInfo as k, ResponseResolverInfo as l, RequestHandlerArgs as m, RequestHandlerExecutionResult as n };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EventMap, Emitter } from 'strict-event-emitter';
|
|
2
|
+
import { R as RequestHandler, g as RequestHandlerDefaultInfo } from './RequestHandler-1a5dbdc7.js';
|
|
3
|
+
import { LifeCycleEventEmitter } from './sharedOptions.js';
|
|
4
|
+
import { Disposable } from './utils/internal/Disposable.js';
|
|
5
|
+
import './typeUtils.js';
|
|
6
|
+
import './utils/request/onUnhandledRequest.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Generic class for the mock API setup.
|
|
10
|
+
*/
|
|
11
|
+
declare abstract class SetupApi<EventsMap extends EventMap> extends Disposable {
|
|
12
|
+
protected initialHandlers: ReadonlyArray<RequestHandler>;
|
|
13
|
+
protected currentHandlers: Array<RequestHandler>;
|
|
14
|
+
protected readonly emitter: Emitter<EventsMap>;
|
|
15
|
+
protected readonly publicEmitter: Emitter<EventsMap>;
|
|
16
|
+
readonly events: LifeCycleEventEmitter<EventsMap>;
|
|
17
|
+
constructor(...initialHandlers: Array<RequestHandler>);
|
|
18
|
+
private validateHandlers;
|
|
19
|
+
use(...runtimeHandlers: Array<RequestHandler>): void;
|
|
20
|
+
restoreHandlers(): void;
|
|
21
|
+
resetHandlers(...nextHandlers: Array<RequestHandler>): void;
|
|
22
|
+
listHandlers(): ReadonlyArray<RequestHandler<RequestHandlerDefaultInfo, any, any>>;
|
|
23
|
+
private createLifeCycleEvents;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { SetupApi };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var SetupApi_exports = {};
|
|
20
|
+
__export(SetupApi_exports, {
|
|
21
|
+
SetupApi: () => SetupApi
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(SetupApi_exports);
|
|
24
|
+
var import_outvariant = require("outvariant");
|
|
25
|
+
var import_strict_event_emitter = require("strict-event-emitter");
|
|
26
|
+
var import_devUtils = require("./utils/internal/devUtils.js");
|
|
27
|
+
var import_pipeEvents = require("./utils/internal/pipeEvents.js");
|
|
28
|
+
var import_toReadonlyArray = require("./utils/internal/toReadonlyArray.js");
|
|
29
|
+
var import_Disposable = require("./utils/internal/Disposable.js");
|
|
30
|
+
class SetupApi extends import_Disposable.Disposable {
|
|
31
|
+
constructor(...initialHandlers) {
|
|
32
|
+
super();
|
|
33
|
+
this.validateHandlers(...initialHandlers);
|
|
34
|
+
this.initialHandlers = (0, import_toReadonlyArray.toReadonlyArray)(initialHandlers);
|
|
35
|
+
this.currentHandlers = [...initialHandlers];
|
|
36
|
+
this.emitter = new import_strict_event_emitter.Emitter();
|
|
37
|
+
this.publicEmitter = new import_strict_event_emitter.Emitter();
|
|
38
|
+
(0, import_pipeEvents.pipeEvents)(this.emitter, this.publicEmitter);
|
|
39
|
+
this.events = this.createLifeCycleEvents();
|
|
40
|
+
this.subscriptions.push(() => {
|
|
41
|
+
this.emitter.removeAllListeners();
|
|
42
|
+
this.publicEmitter.removeAllListeners();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
validateHandlers(...handlers) {
|
|
46
|
+
for (const handler of handlers) {
|
|
47
|
+
(0, import_outvariant.invariant)(
|
|
48
|
+
!Array.isArray(handler),
|
|
49
|
+
import_devUtils.devUtils.formatMessage(
|
|
50
|
+
'Failed to construct "%s" given an Array of request handlers. Make sure you spread the request handlers when calling the respective setup function.'
|
|
51
|
+
),
|
|
52
|
+
this.constructor.name
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
use(...runtimeHandlers) {
|
|
57
|
+
this.currentHandlers.unshift(...runtimeHandlers);
|
|
58
|
+
}
|
|
59
|
+
restoreHandlers() {
|
|
60
|
+
this.currentHandlers.forEach((handler) => {
|
|
61
|
+
handler.isUsed = false;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
resetHandlers(...nextHandlers) {
|
|
65
|
+
this.currentHandlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];
|
|
66
|
+
}
|
|
67
|
+
listHandlers() {
|
|
68
|
+
return (0, import_toReadonlyArray.toReadonlyArray)(this.currentHandlers);
|
|
69
|
+
}
|
|
70
|
+
createLifeCycleEvents() {
|
|
71
|
+
return {
|
|
72
|
+
on: (...args) => {
|
|
73
|
+
return this.publicEmitter.on(...args);
|
|
74
|
+
},
|
|
75
|
+
removeListener: (...args) => {
|
|
76
|
+
return this.publicEmitter.removeListener(...args);
|
|
77
|
+
},
|
|
78
|
+
removeAllListeners: (...args) => {
|
|
79
|
+
return this.publicEmitter.removeAllListeners(...args);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { invariant } from "outvariant";
|
|
2
|
+
import { Emitter } from "strict-event-emitter";
|
|
3
|
+
import { devUtils } from './utils/internal/devUtils.mjs';
|
|
4
|
+
import { pipeEvents } from './utils/internal/pipeEvents.mjs';
|
|
5
|
+
import { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';
|
|
6
|
+
import { Disposable } from './utils/internal/Disposable.mjs';
|
|
7
|
+
class SetupApi extends Disposable {
|
|
8
|
+
constructor(...initialHandlers) {
|
|
9
|
+
super();
|
|
10
|
+
this.validateHandlers(...initialHandlers);
|
|
11
|
+
this.initialHandlers = toReadonlyArray(initialHandlers);
|
|
12
|
+
this.currentHandlers = [...initialHandlers];
|
|
13
|
+
this.emitter = new Emitter();
|
|
14
|
+
this.publicEmitter = new Emitter();
|
|
15
|
+
pipeEvents(this.emitter, this.publicEmitter);
|
|
16
|
+
this.events = this.createLifeCycleEvents();
|
|
17
|
+
this.subscriptions.push(() => {
|
|
18
|
+
this.emitter.removeAllListeners();
|
|
19
|
+
this.publicEmitter.removeAllListeners();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
validateHandlers(...handlers) {
|
|
23
|
+
for (const handler of handlers) {
|
|
24
|
+
invariant(
|
|
25
|
+
!Array.isArray(handler),
|
|
26
|
+
devUtils.formatMessage(
|
|
27
|
+
'Failed to construct "%s" given an Array of request handlers. Make sure you spread the request handlers when calling the respective setup function.'
|
|
28
|
+
),
|
|
29
|
+
this.constructor.name
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
use(...runtimeHandlers) {
|
|
34
|
+
this.currentHandlers.unshift(...runtimeHandlers);
|
|
35
|
+
}
|
|
36
|
+
restoreHandlers() {
|
|
37
|
+
this.currentHandlers.forEach((handler) => {
|
|
38
|
+
handler.isUsed = false;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
resetHandlers(...nextHandlers) {
|
|
42
|
+
this.currentHandlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];
|
|
43
|
+
}
|
|
44
|
+
listHandlers() {
|
|
45
|
+
return toReadonlyArray(this.currentHandlers);
|
|
46
|
+
}
|
|
47
|
+
createLifeCycleEvents() {
|
|
48
|
+
return {
|
|
49
|
+
on: (...args) => {
|
|
50
|
+
return this.publicEmitter.on(...args);
|
|
51
|
+
},
|
|
52
|
+
removeListener: (...args) => {
|
|
53
|
+
return this.publicEmitter.removeListener(...args);
|
|
54
|
+
},
|
|
55
|
+
removeAllListeners: (...args) => {
|
|
56
|
+
return this.publicEmitter.removeAllListeners(...args);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
SetupApi
|
|
63
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type BypassRequestInput = string | URL | Request;
|
|
2
|
+
/**
|
|
3
|
+
* Creates a `Request` instance that will always be ignored by MSW.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { bypass } from 'msw'
|
|
7
|
+
*
|
|
8
|
+
* fetch(bypass('/resource'))
|
|
9
|
+
* fetch(bypass(new URL('/resource', 'https://example.com)))
|
|
10
|
+
* fetch(bypass(new Request('https://example.com/resource')))
|
|
11
|
+
*
|
|
12
|
+
* @see {@link https://mswjs.io/docs/api/bypass `bypass()` API reference}
|
|
13
|
+
*/
|
|
14
|
+
declare function bypass(input: BypassRequestInput, init?: RequestInit): Request;
|
|
15
|
+
|
|
16
|
+
export { BypassRequestInput, bypass };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var bypass_exports = {};
|
|
20
|
+
__export(bypass_exports, {
|
|
21
|
+
bypass: () => bypass
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(bypass_exports);
|
|
24
|
+
var import_outvariant = require("outvariant");
|
|
25
|
+
function bypass(input, init) {
|
|
26
|
+
const request = input instanceof Request ? input : new Request(input, init);
|
|
27
|
+
(0, import_outvariant.invariant)(
|
|
28
|
+
!request.bodyUsed,
|
|
29
|
+
'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
|
|
30
|
+
request.method,
|
|
31
|
+
request.url
|
|
32
|
+
);
|
|
33
|
+
const requestClone = request.clone();
|
|
34
|
+
requestClone.headers.set("x-msw-intention", "bypass");
|
|
35
|
+
return requestClone;
|
|
36
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { invariant } from "outvariant";
|
|
2
|
+
function bypass(input, init) {
|
|
3
|
+
const request = input instanceof Request ? input : new Request(input, init);
|
|
4
|
+
invariant(
|
|
5
|
+
!request.bodyUsed,
|
|
6
|
+
'Failed to create a bypassed request to "%s %s": given request instance already has its body read. Make sure to clone the intercepted request if you wish to read its body before bypassing it.',
|
|
7
|
+
request.method,
|
|
8
|
+
request.url
|
|
9
|
+
);
|
|
10
|
+
const requestClone = request.clone();
|
|
11
|
+
requestClone.headers.set("x-msw-intention", "bypass");
|
|
12
|
+
return requestClone;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
bypass
|
|
16
|
+
};
|